Java 一种加法程序,将输入的数字相加,直到输入零为止。在爪哇

Java 一种加法程序,将输入的数字相加,直到输入零为止。在爪哇,java,nested-loops,Java,Nested Loops,在这个程序中,你(用户)一直输入数字,直到你输入一个零,当列表终止时&你得到正偶数、奇数和负数之和。我已经尽了最大努力来完成它,但问题是当我试图运行它们时,它们和DrJava都挂起了。但它们编译得很好。以下是我的节目: /** *@author DarkIceDragon */ import java.util.*; class huge_addition { public static void main (String[] args) { Scanner sc = new Sc

在这个程序中,你(用户)一直输入数字,直到你输入一个零,当列表终止时&你得到正偶数、奇数和负数之和。我已经尽了最大努力来完成它,但问题是当我试图运行它们时,它们和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
/**
*@作者DarkIceDragon
*/
导入java.util.*;
类加数
{
公共静态void main(字符串[]args)
{
扫描仪sc=新的扫描仪(System.in);
System.out.println(“输入数字。输入零时列表终止。开始加法时输入零。”);
int a=sc.nextInt();
int esum=0;
int-osum=0;
int nsum=0;
while(a!=0)
{
如果(a>0)
{
如果(a%2==0)
{
esum=esum+a;
}//第三个最内层if语句的结尾
其他的
{
osum=osum+a;
}//第三个else语句结束
}//第二个中间if-else循环结束

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

您应该使用
sc.nextInt()在while循环中每次都接受该数字
,而您所做的只是进入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
import java.util.*;
类加数
{
公共静态void main(字符串[]args)
{
扫描仪sc=新的扫描仪(System.in);
System.out.println(“输入数字。输入零时列表终止。开始加法时输入零。”);
//无需->>int a=sc.nextInt();
int num=-1;
int esum=0;
int-osum=0;
int nsum=0;
while(num!=0)
{
System.out.println(“输入编号”);
num=sc.nextInt();
如果(数值%2==0)
{
esum=esum+num;
}//第三个最内层if语句的结尾
其他的
{
osum=osum+num;
}//第三个else语句结束
//第二个中间if-else循环结束

如果(numadd
a=sc.nextInt();
while
-循环的末尾。它会使您错过读取循环中的下一个数字的机会。在循环的最后一行,循环的内部:)这将为您节省时间!:)非常感谢你们。你们所有人!编程的乐趣。一行代码就可以让一整天的工作白费。我喜欢它