【问题标题】:Entering numbers in program using while loop使用while循环在程序中输入数字
【发布时间】:2015-01-30 06:40:51
【问题描述】:

我是Java初学者,谁能解释一下总数是11。

问题 - 用户准备好一个一个地输入这些数字,直到程序停止: 4 7 5 8 9 3 4 1 5 3 5

什么显示为总数?

int number;
int total = 0;
System.out.print("Enter a number");
number = input.nextInt();
while (number != 1)
{
if (number < 5) total = total + number;
System.out.print("Enter a number");
number = input.nextInt();
}
System.out.println(total);

【问题讨论】:

    标签: java if-statement input while-loop


    【解决方案1】:

    我会一步一步解释。

    步骤 - 1:

    您已经声明了两个整数变量。一个用于保存输入,另一个用于保存计算后的总值。整数 total 初始化为 0。您的代码的以下部分正在执行此操作:

    int number;
    int total = 0;
    

    步骤 - 2:

    现在您正在提供输入值。然后输入值进入while循环。除非您的输入值为 1,否则 while 循环将继续执行。您的第一个输入是 4,4!=1,因此,它进入了循环。

    System.out.print("Enter a number");
    number = input.nextInt();
    while (number != 1)
    {
    

    步骤 - 3:

    现在,在您的循环中,您正在检查您的输入值是否小于 5。 如果小于 5,则total 的值将增加到total + number否则total 保持不变。无论 if 条件如何,只要 number 不是 1,您的系统就会继续提示您提供输入。以下代码执行此操作:

      if (number < 5) total = total + number;
      System.out.print("Enter a number");
      number = input.nextInt();
    }
    

    在这种情况下,您的输入序列是 4 7 5 8 9 3 4 1 5 3 5

    对于第一个输入4,4 true,所以total = 0 + 4 = 4。下一个输入是 7,7 false,所以 total 仍然是 4,输入 59 也是如此。当你的输入是 3 时,3 true,所以是 total = 4 + 3 = 7。那么对于输入4,4true,所以total = 7 + 4 = 11

    正如我们已经看到的,只要您输入 1,上述 while 循环就会终止。您的下一个输入是 1,因此循环将终止,您无法再输入任何数字,最终的总值仍为 11

    步骤 - 4:

    在循环之外,您正在打印 total 的值,因此它将显示 11。

    System.out.println(total);
    

    附言

    如果您理解我的解决方案,您的下一个任务将是使用for loop 执行完全相同的操作。

    【讨论】:

      【解决方案2】:

      您正在输入4 7 5 8 9 3 4 1 5 3 5

      以下代码只允许接受4 7 5 8 9 3 4,因为当输入1 时它会中断循环。

      while (number != 1)
      {
      ...
      }
      

      以下代码仅添加4 3 4,因为数字应小于5

      if (number < 5) total = total + number;
      

      因此你得到 4 + 3 + 4 = 11

      【讨论】:

        【解决方案3】:

        While 循环将一直运行,直到用户输入 1。 如果输入的数字小于 5,则数字将相加。 因此,从用户输入的内容来看,它将是 4+3+4 = 11。在 1 时,while 循环将退出。

        【讨论】:

          【解决方案4】:
          int number;
          int total = 0;
          System.out.print("Enter a number");
          number = input.nextInt();
          while (number != 1)
          {
          if (number < 5) total = total + number;
          
          // only adds 4 3 4 because number should be less than 5
          
          System.out.print("Enter a number");
          number = input.nextInt();
          }
          System.out.println(total);
          
          // Because of that you can: 4+3+4 = 11
          

          【讨论】:

          • 请考虑包含一些关于您的答案的信息,而不是简单地发布代码。我们试图提供的不仅仅是“修复”,而是帮助人们学习。您应该解释原始代码中的问题、您所做的不同之处以及您的更改为何有效。
          【解决方案5】:

          您的 while 循环将一直运行,直到它得到 1 作为输入。

          while (number != 1)
          

          在 while 循环中,您有一个 if 子句,当输入的数字小于 5 时,它会将您的输入添加到总数中

          if (number < 5) total = total + number;
          

          这就是为什么只添加 4、3、4 和 total=11

          【讨论】:

            【解决方案6】:

            您的输入是 4 7 5 8 9 3 4 1 5 3 5

            您的代码 sn-p 与注释解释如下:

            int number;
            int total = 0;
            System.out.print("Enter a number");
            number = input.nextInt(); // your first input number ie. 4 is taken as input
            while (number != 1) // while starts because 4 > 1
            {
            if (number < 5) total = total + number; 
            System.out.print("Enter a number");
            number = input.nextInt();
            
             /* in while loop only 4,3,4 will be added to the total because you have **if (number < 5) total = total + number;**  loop will break after taking input 1 because of  **while (number != 1)**. At that time total will be equal to 11. */
            
            }
            System.out.println(total); // outside loop value of total = 11 will be printed
            

            【讨论】:

              猜你喜欢
              • 1970-01-01
              • 1970-01-01
              • 2016-04-26
              • 1970-01-01
              • 1970-01-01
              • 2015-01-15
              • 1970-01-01
              • 1970-01-01
              • 2013-11-16
              相关资源
              最近更新 更多