0

在这个程序中,您(用户)一直输入数字,直到您输入零,这是列表终止的时候,您会得到正偶数、奇数和负数的总和。我已经尽力完成它,但问题是当我尝试运行它们时http://ideone.com/和 DrJava 都挂起。但他们编译得很好。这是我的程序:

 /**
*@author DarkIceDragon
*/
 import java.util.*;
 class huge_addition
{
public static void main (String[] args)
{
    Scanner sc = new Scanner (System.in);
    System.out.println ("Enter numbers. List terminates when you enter a zero. Enter a zero when you want to begin the addition.");
    int a = sc.nextInt();
    int esum=0;
    int osum=0;
    int nsum=0;
    while (a !=0)
    {
        if (a>0)
        {
            if (a%2==0)
            {
                esum = esum+a;
            }// end of 3rd innermost if statement
            else
            {
            osum = osum+a;
            }// end of 3rd else statement
        }//end of 2nd middle if-else-loop
        else if (a<0)
        {
            nsum=nsum+a;
        }//end of 2nd middle else statement
    }//end of while loop
        System.out.println ("The sum of even positive numbers is "+esum);
        System.out.println ("The sum of odd positive numbers is "+osum);
        System.out.println ("The sum of negative numbers is "+nsum);
    }//end of main
        }//end of class

我承认它是上学的,但我自己完成了所有其余的工作(大约有 16 个左右),现在是晚上 12:00,我一直在努力让这个程序运行一个多小时. 而且我在Java中仍然是一个完整的新手(虽然noob会更合适),所以我现在只有基本命令等。哎呀,直到今天,我仍然在我的程序中使用void main()而不是public static void main(String[] args)在我的程序中使用了 2 个小时,想知道为什么它们不在 NetBeans 上运行。太糟糕了 BlueJ 停止为我工作。

任何帮助将不胜感激。感谢您观看并祝您有美好的一天!

4

2 回答 2

1

因为这是你的学校作业,所以我只会回答一个提示:检查 sc.nextInt() 在你的代码中的位置。第二个提示:运行代码时尝试输入数字零作为第一个输入。

于 2013-01-26T18:59:27.620 回答
0

您应该每次在 while 循环中使用 接受数字sc.nextInt(),而您所做的只是进入 while 循环,什么也不做。每次都接受数字,并根据该数字检查它是偶数还是奇数,然后添加。

这是更正后的代码:

import java.util.*;
class huge_addition
{
public static void main (String[] args)
{
Scanner sc = new Scanner (System.in);
System.out.println ("Enter numbers. List terminates when you enter a zero. Enter a zero when you want to begin the addition.");

// no need ->> int a = sc.nextInt();
int num=-1;
int esum=0;
int osum=0;
int nsum=0;
while (num !=0)
{

    System.out.println("enter the number");
       num= sc.nextInt();
        if (num%2==0)
        {
            esum = esum+num;
        }// end of 3rd innermost if statement
        else
        {
        osum = osum+num;
        }// end of 3rd else statement
    //end of 2nd middle if-else-loop
    if (num<0)
    {
        nsum=nsum+num;
    }//end of 2nd middle else statement
 }//end of while loop
    System.out.println ("The sum of even positive numbers is "+esum);
    System.out.println ("The sum of odd positive numbers is "+osum);
    System.out.println ("The sum of negative numbers is "+nsum);
 }//end of main
    }//end of class
于 2013-01-26T19:19:26.820 回答