Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/loops/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
java-can';正确循环时,不要断开do_Java_Loops - Fatal编程技术网

java-can';正确循环时,不要断开do

java-can';正确循环时,不要断开do,java,loops,Java,Loops,我需要创建一个程序,要求用户输入数字,直到用户插入一个零,然后打印插入数字的平均值。但我只能得到第一次输入的平均值,不能得到后一次输入的平均值 public static void main(String[] args) { double a = 0; int b = 0; Scanner input = new Scanner(System.in); do { b++; System.out.println("i

我需要创建一个程序,要求用户输入数字,直到用户插入一个零,然后打印插入数字的平均值。但我只能得到第一次输入的平均值,不能得到后一次输入的平均值

  public static void main(String[] args) {

      double a = 0;
      int b = 0; 
    Scanner input = new Scanner(System.in);
    do {
        b++;
         System.out.println("insert a number");
          a += input.nextDouble();

    }
    while (a > 0 );{

      }

      System.out.println("the average is " + a / b );

    }  

}检查时,
中没有输入。您需要调用另一个变量,即
userInput

userInput = input.nextDouble();
a += userInput;
}

while(userInput > 0)
....

您正在将输入中的值直接添加到:


因此,如果您直接向a添加值,则无法判断用户何时键入0,并且只有当a降至0以下时,循环才会终止。例如,当用户输入为2,3,-5时,为什么要在while语句后加括号?如果您为变量指定有意义的名称,而不是
a
b
,您将更容易找到错误。在第一次(正)输入后,a将永远不小于1,因为新的输入只是被添加到其中。首先要很好地格式化您的代码,并删除未使用的混乱,如
while
后面的额外大括号。您可能想定义另一个变量来存储最后输入的双精度,而不是检查累计双精度(a)。
a+=input.nextDouble();