int num=1025;
for (int i = num; i<1030; System.out.println("i =" + i), i++); //loop 1
System.out.println(""); // for spacing results
for (int i = num; i<1030; System.out.println("i =" + i)) { //loop 2
i++;
}
你可以在java编译器上运行它们,你会看到我们在说什么。
答案 0 :(得分:4)
这是我第一次在for循环的增量表达式中看到println
。
不同之处在于,在第二个循环中,i++
在增量表达式之前执行,因此println
打印新值i
。
在第一个循环中,i
在增量表达式中递增,但在println
之后,则打印前一个值i
。
答案 1 :(得分:1)
由于:
loop1在递增之前打印i
,
loop2在递增后打印i
。
在for循环中
for (<initial> ; <test> ; <post> ) {
<body>
}
循环<body>
在<post>
循环的for
子句之前执行。在您的示例中,您在不同位置增加了i
...
除此之外:你的循环的两种形式都是糟糕的风格......此时使用print
语句。不要在实际代码中这样做。
答案 2 :(得分:0)
这是你的第一个for循环的工作原理:
注意print语句后跟i值的增量。
这是你的第二个for循环的工作原理:
答案 3 :(得分:0)
在for循环的每次迭代中: -
评估布尔表达式。如果是,则执行循环体。在执行for循环体后,控制流会跳回到update语句。
因此
for (int i = num; i<1030; System.out.println("i =" + i), i++);
首先它将执行System.out.println("i =" + i)
(for循环的增量条件中的第一个语句)然后它将执行i++
(for循环的增量条件中的第二个语句)
如果是
for (int i = num; i<1030; System.out.println("i =" + i))
首先它将执行i++
(for循环体)然后它将运行System.out.println("i =" + i)
(在这种情况下这是增量条件)
答案 4 :(得分:0)
for loop working is illustrated as below.
for ( declaration ; condition ; update action ) {
//for block
}
下面是执行for循环的顺序。 宣言 条件检查 3.用于块执行 4.更新行动。
在你的情况下,第二个循环中的println语句在i ++运算符之后执行。因此,在控制台上打印之前,该值会增加到1026。
答案 5 :(得分:0)
for for for循环将System.out.println("i =" + i)
视为for循环的更新语句,i
中的增量在此执行之前完成。
为了解释它,更好地考虑任何for循环的结构:
for(initialization; Boolean_expression; update){
//Statements
}
初始化步骤首先执行且仅执行一次。然后评估下一个Boolean_expression。如果发现为真,则将执行正文,如果为false则循环终止。 在正文执行后,控件跳转到update语句并执行。
所以在上面的代码System.out.println("i =" + i)
被视为更新语句并最后执行,这就是为什么输出
i = 1025 我= 1026 我= 1027 我= 1028 i = 1029
i = 1026 我= 1027 我= 1028 我= 1029 i = 1030