1 class Problem37
2 {
3 public static void main(String []args)
4 {
5 one:
6 for(int i = 0; i < 4; i++)
7 {
8 two:
9 for(int j = 10; j < 30; j+=10)
10 {
11 System.out.println(i+j);
12 if(i > 2)
13 continue one;
14 }
15 }
16
17 }
18 }
我的分析是当变量i为3时,由于continue语句,它要跑到“one”处,继续执行循环语句,所以我的分析是出现了死循环,可是运行的时候没有出现死循环。请解释一下为什么阿?
2 {
3 public static void main(String []args)
4 {
5 one:
6 for(int i = 0; i < 4; i++)
7 {
8 two:
9 for(int j = 10; j < 30; j+=10)
10 {
11 System.out.println(i+j);
12 if(i > 2)
13 continue one;
14 }
15 }
16
17 }
18 }
我的分析是当变量i为3时,由于continue语句,它要跑到“one”处,继续执行循环语句,所以我的分析是出现了死循环,可是运行的时候没有出现死循环。请解释一下为什么阿?
第二次执行continue语句到达标签one 时i=4,i<4不成立,for语句到此退出,这时整个程序也退出.
2 {
3 public static void main(String []args)
4 {
5 one:
6 for(int i = 0; i < 4; i++)
7 {
8 two:
9 for(int j = 10; j < 30; j+=10)
10 {
11 System.out.println(i+j); //正常输出
12 if(i > 2)
13 continue one; //返回到one,知道i>=4时推出循环,不会有死循环.continue语句在System.out后面
}
if(i>2){
i=0;
continue one;
}
//系统崩溃;
continue是结束当次循环的,默认的是对最近的那个for起作用你加的one: 和two:是标识continue对那个for起作用所以它只是跳到for而不是重新执行for和单重循环里用continue一样性质
了没有出现死循环。这些小问题不注意点就不会发现,楼上对这个问题解释很好了。我自己也理解了,continue
就是跳出了本次循环,但不会对循环的状态有所影响,也就是i根本就不会在从新赋值。
当然,如果你在one语句后面加上一句: i = 0 应该就会出现死循环了吧