[英]For loop Auto increment variable
在for(int i=0; i < 5; i++)
循环中,在 printf 读取它之前, i
不是已经增加了i++
吗? 如果是这样,它应该返回i=1
对吗? 这里最初返回0
的概念是什么。
public class Application {
public static void main(String[] args) {
for(int i=0; i < 5; i++) {
System.out.printf("The value of i is: %d\n", i);
}
}
}
14.14.1。 基本的声明
BasicForStatement: for ( [ForInit]; [Expression]; [ForUpdate] ) Statement
如果 Expression 不存在,或者它存在并且其评估(包括任何可能的拆箱)产生的值是 true,则执行包含的 Statement。 然后有一个选择:
如果 Statement 的执行正常完成,则依次执行以下两个步骤:
首先,如果存在 ForUpdate 部分,则表达式按从左到右的顺序计算; 它们的值(如果有)将被丢弃。 如果任何表达式的求值由于某种原因突然完成,for 语句也会因为同样的原因而突然完成; 突然完成的语句右侧的任何 ForUpdate 语句表达式都不会被计算。
其次,执行另一个 for 迭代步骤。
在您的示例中,这意味着i++
将在System.out.printf
行之后执行。
不,循环增量是在循环体的末尾计算的。
行为与
for(int i=0; i < 5; ) {
System.out.printf("The value of i is: %d\n", i);
//whatever
//at the very end; just before exiting the loop
i = i + 1;
// exit the loop
}
在 for 循环中,循环仅在 i < 5 时才运行检查。因为它是真的,所以它会允许访问循环,其中 i 仍然为零(0)并执行循环内的语句,然后将 i 加一( i++).Where 那么增加的 i 将被考虑到条件中。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.