if i++ = 11
,这将结束for循环,但我很困惑为什么i = 11
将被存储并在下一个println打印出来
public class kkk {
public static void main(String args[]) {
int i;
for (i = 1; i < 11; i++) {
if (i > 5)
continue;
System.out.println(i);
}
System.out.println(i);
}
}
答案 0 :(得分:2)
为了解释for循环的逻辑,我们将它与while
for (
i = 1; //Block of initialisation
i < 11; //condition
i++ //Block of incrementation
){
if (i > 5)
continue;
System.out.println(i);
}
这看起来像
{ //Block of initialisation
i = 1
}
while(i < 11){ //condition
{ //Block of code
if (i > 5)
continue;
System.out.println(i);
}
{ //Block of incrementation
++i;
}
}
在这里,您将看到for循环的每个块的顺序。确实,i
在退出循环时将等于11
。
注意: 块语句并不存在,它用于显示所有内容的存在位置。因为当然,初始化中的变量声明不会存在于块
之外答案 1 :(得分:1)
因为你声明{for循环范围之外的i
变量,意味着即使在for循环结束后它也将零售它的值。
显然,当i
的值为11时,循环结束,因此在循环之后它打印11
答案 2 :(得分:1)
基本上是因为for
循环的工作原理。
当i == 10
它将完成工作(在您的情况下打印i
),但它不会退出循环。
之后,它将增加为11
,使条件i < 11
无效,然后它将退出循环。
答案 3 :(得分:1)
循环的终止条件不是i++ == 11
,而是i < 11
。在检查条件之前,在循环结束后进行递增。
将自己与这种循环进行比较
int i = 0;
while (i++ < 11) {
if (i > 5)
continue;
System.out.println(i);
}
System.out.println(i);
答案 4 :(得分:1)
一旦i的实际值不再小于11,循环就会终止。
在您的示例中,我将从1开始,然后在每次迭代时继续递增。当i等于10时,循环执行时它将增加到11。此后,当检查循环条件时,i已经等于11。因此,循环终止于println()打印出11 - i的当前值。
答案 5 :(得分:1)
int i; // A
for (i = 1; i < 11; i++) {
if (i > 5)
continue;
System.out.println(i);
}
System.out.println(i); // B
在B行中,您打印的是i
的值,不是吗?
i
的值不会消失。 for循环结束后,i
存储11,因此它将继续存储11
,直到您更改它为止。
这是因为在A行中,您声明了i
。如果您在for循环中再次声明i
,则循环中的i
与循环外的i
不同i
,并且不会具有值{ {1}}。
答案 6 :(得分:1)
当main方法运行时,初始值为1,但当end for loop i = 11时,解释器将结束System.out.println(i);
int i; // initial value 1
for (i = 1; i < 11; i++) {
if (i > 5)
continue;
System.out.println(i);
}
// now i value is 11 so system out printed 11
System.out.println(i);
}
答案 7 :(得分:-1)
你在for循环外面有一个println(),它打印11。
答案 8 :(得分:-1)
public class kkk {
public static void main(String args[]) {
int i;
for (i = 1; i < 10; i++) {
if (i > 5)
continue;
System.out.println(i);
}
System.out.println(i);
}
}
试试这个。它会告诉你程序是如何执行的。