我已经设置了循环来制作"我"增加直到" 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
}
}
答案 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是预期的行为。
每次迭代后,会发生以下步骤:
因此,在i
等于9
时的迭代中,i
首先递增到10
,然后进行比较:i<10
。由于i<10
为false,循环终止。此时,i
等于10
。
答案 2 :(得分:0)
在循环体之前检查变量,并在体后递增。
在循环的最后几次迭代中(从i = 9
开始),会发生以下情况:
i<10
。 9小于10所以循环继续。i
递增,为其赋值10. i<10
。 10不小于10所以循环退出。i
的值为10,因此10将打印到屏幕上。答案 3 :(得分:0)
第二个System.out.println位于循环之外。循环最多只能达到9.您可以使用if else语句创建一个高数字,然后在循环外部使用System.out.println(highnumber)。