for循环超出了设置条件

时间:2016-07-31 23:26:29

标签: java for-loop

我已经设置了循环来制作"我"增加直到" i< 10&#34 ;.在for完成之后,我在关闭卷括号后添加了一个输出语句来显示i值,结果为10,而我认为最大值可能只有9。 有人可以解释一下导致什么原因"我"超越它的最大值9?

非常感谢, 维拉德

public class Recap3 {
   public static void main(String args[]) {
     int i;
     for(i=0;i<10;i++) {
         System.out.println(i); // this statement lists values from 0 to 9
     } System.out.println(i); // this statement returns i = 10
   }
 }

4 个答案:

答案 0 :(得分:0)

在循环的每次迭代之后,Java将执行for循环的第三项i++。然后,它检查是否i<10。如果这导致true,则会继续执行for循环,否则会停止。

这意味着首先,java设置i等于10,然后检查它是否小于10,然后中断。

执行的语句如下所示:

System.out.println(i); //i=9
i++; //i=10
if(!(i<10)) break;//This breaks out of the loop
System.out.println(i); //i=10

答案 1 :(得分:0)

这不是错误。 i增加到10是预期的行为。

每次迭代后,会发生以下步骤:

  1. 在for循环中执行第3个语句
  2. 然后评估第二部分中的条件表达式。
  3. 如果条件表达式的计算结果为true,则执行循环体并返回第一步。如果条件表达式求值为false,则在循环后继续执行。
  4. 因此,在i等于9时的迭代中,i首先递增到10,然后进行比较:i<10。由于i<10为false,循环终止。此时,i等于10

答案 2 :(得分:0)

在循环体之前检查变量,并在体后递增。

在循环的最后几次迭代中(从i = 9开始),会发生以下情况:

  1. 检查条件i<10。 9小于10所以循环继续。
  2. 循环体正在运行,值9将打印到屏幕上。
  3. 变量i递增,为其赋值10.
  4. 检查条件i<10。 10不小于10所以循环退出。
  5. 循环外的语句运行。 i的值为10,因此10将打印到屏幕上。

答案 3 :(得分:0)

第二个System.out.println位于循环之外。循环最多只能达到9.您可以使用if else语句创建一个高数字,然后在循环外部使用System.out.println(highnumber)。