Java While循环没有正确添加

0 java loops while-loop nested-if

我无法弄清楚为什么每次循环都没有正确加起来.当输入-9999时,while循环也没有输出和,这也是一个问题.

import java.util.*;
public class list 
{
   public static void main(String args []) 
   {
      Scanner sc = new Scanner(System.in);
      int Number, Sum = 0;
      System.out.println("Enter the list of whole numbers, terminate by -9999> ");
      Number = sc.nextInt();
      Sum += Number;
      while (Number != -9999) 
      {
         if (Number > 1 && Number < 100)
         {
            Sum += Number;
            Number = sc.nextInt();
         } 
         else
           System.out.println("Please enter a number between 1 and 100");
         Number = sc.nextInt();
      }
      System.out.println("Sum is " + Sum);
   }
}
Run Code Online (Sandbox Code Playgroud)

rge*_*man 5

你在循环中要求一个数字可能两次.一旦在if块,而一旦您的else块.没有括号,只有第一个语句是块.代替

else
    System.out.println("Please enter a number between 1 and 100");
  Number = sc.nextInt();
Run Code Online (Sandbox Code Playgroud)

尝试

else
{
    System.out.println("Please enter a number between 1 and 100");
    Number = sc.nextInt();
}
Run Code Online (Sandbox Code Playgroud)

此外,您的第一个号码被添加两次; 从while循环之前删除第一个添加项.

此外,虽然这是合法的,但可能是您的实际要求,这一行

if (Number > 1 && Number < 100)
Run Code Online (Sandbox Code Playgroud)

不会接受1100.有可能你的要求将包括同时接受1100,在这种情况下,条件应该是Number >= 1 && Number <= 100.

顺便说一句,传统的Java变量以小写字母开头,而类以大写字母开头,这意味着变量NumberSum应改名numbersum分别.