虽然循环不按预期工作

时间:2016-09-12 00:45:15

标签: java

为什么输入的数字不会加到程序结束时的总和上?

      int data;
      int sum = 0;


      int count =0;
      do {
         System.out.print("Please enter a number: ");
         data = input.nextInt();
         count++;
      }       


      while (count < 10);



      while (sum !=0) 

         break;

      System.out.println("The total is " + sum);

   }
}

2 个答案:

答案 0 :(得分:1)

让我们整理一下 并且在计数++之后;我添加了一行来总结你的价值,例如sum + = data;

int data;
int sum = 0;
int count =0;
do {
  System.out.print("Please enter a number: ");
  data = input.nextInt();
  count++;
  sum += data;      // new line here to sum value
}  while (count < 10);

System.out.println("The total is " + sum);

答案 1 :(得分:0)

分解代码,我们可以看到问题所在。

您初始化变量。

  int data;
  int sum = 0;


  int count =0;

这部分看似正确。

然后开始第一个循环以从用户那里获取数据。

  do {
     System.out.print("Please enter a number: ");
     data = input.nextInt();
     count++;
  }       


  while (count < 10);

在这里我们看到,每次迭代循环时,我们将变量'data'设置为输入值并递增计数器。循环执行10次。

在我们退出循环的那一点上,变量将设置如下:

    data = `last number entered by the user`
    sum = 0
    count = 10

现在我们来看看最后一个循环。

  while (sum !=0) 

     break;

由于'sum'= 0,我们永远不会进入循环。

最后,我们有了print语句。

  System.out.println("The total is " + sum);

由于'sum'= 0,打印的行将显示The total is 0

如果您将第一个循环修改为...

do {
   System.out.print("Please enter a number: ");
   data = input.nextInt();
   sum = sum + data;
   count++;
}       


while (count < 10);

然后你应该得到输入数据的总和。

此外,你的第二个循环应该被删除,因为即使'sum'不等于0它也会进入循环并立即点击break语句导致它退出循环。