这个循环中的逻辑错误是什么?

gna*_*ace 1 java loops

对于这些准则:

编写一个循环,从标准输入读取正整数,并在读取非正数的整数时终止.在循环终止之后,它打印出来,由空格和单行分隔,读取所有偶数整数的总和以及读取的所有奇数整数的总和.声明所需的任何变量.

ASSUME变量stdin的可用性,该变量引用与标准输入关联的Scanner对象.

我写了这段代码,但由于逻辑错误,硬件软件不会除外.我似乎无法在这里找到逻辑错误.谁能指出它有什么问题?

    int sumP=0;
    int sumO=0;
    Scanner stdin = new Scanner (System.in);

    System.out.println("enter an odd or even number");

    while (stdin.nextInt() >= 0){
    if(stdin.nextInt()%2 == 0)
        sumP+= stdin.nextInt();
    else
        sumO += stdin.nextInt();
    }
    System.out.println(sumP + " " + sumO);
Run Code Online (Sandbox Code Playgroud)

Pet*_*rey 7

您需要保存已读取的值,否则将在while循环和添加中使用不同的值.

int n;
while((n = stdin.readInt()) >= 0) {
    // use the same value of n
Run Code Online (Sandbox Code Playgroud)

  • 有时当你调用相同的方法时,你会得到相同的东西,但是使用流你只需得到下一个值. (2认同)