解释一下 java 继续并简要分解以下代码
Explain about java continue & break the following code briefly
简单解释一下下面代码的作用。
关于 continue
& break
操作。看不懂label1
,label2
.....请描述代码功能
(标签基本用于嵌套循环
但是注意这里用到它们是为了理解标注过程)
class example {
public static void main(String args[]) {
int i = 0;
int j = 0;
label1: while (i++ < 5) {
label2: for (;;) {
label3: do {
System.out.print(i + " " + j + " ");
switch (i + j++) {
case 0:
continue label3;
case 1:
continue label2;
case 2:
continue label1;
case 3:
break;
case 4:
break label3;
case 5:
break label2;
case 6:
break label1;
default:
break label1;
}
} while (++j < 5);
}
}
}
}
Break in Java表示会退出循环。你的情况 while(++j<5)
Continue 跳过循环一次,这意味着循环将从顶部开始,continue 下面的任何内容都不会执行。
如果这对你有帮助,请给我投票。我是新来的,想拥有一些基本的声誉。谢谢!
以下行首先检查 0 < 5
,然后将 i
的值增加到 1
:
while (i++ < 5)
因此下面的语句打印 1 0 因为 i
的值现在是 1
而 j
的值是 0
:
System.out.print(i + " " + j + " ");
作为上述两个处理的结果,以下行被评估为switch (1 + 0)
然后j
的值增加到1
:
switch (i + j++)
作为上述处理的结果,case (1)
变为 true
,因此控制转到 label2
并再次返回到以下打印 [=66= 的语句]1 1:
System.out.print(i + " " + j + " ");
现在,以下行被评估为 switch (1 + 1)
然后 j
的值增加到 2
:
switch (i + j++)
作为上述处理的结果,case (2)
变成了 true
,因此控制转到 label1
从它落到下一行,它首先检查是否 1 < 5
然后将 i
的值增加到 2
:
while (i++ < 5)
然后它转到下面的语句打印 2 2 因为 i
的值现在是 2
而 j
的值是 2
:
System.out.print(i + " " + j + " ");
等等...
希望您清楚。除此之外,我还建议您关注 Java naming convention 例如根据命名约定,class example
应该是 class Example
。
如有任何问题,请随时发表评论doubt/issue。
简单解释一下下面代码的作用。
关于 continue
& break
操作。看不懂label1
,label2
.....请描述代码功能
(标签基本用于嵌套循环
但是注意这里用到它们是为了理解标注过程)
class example {
public static void main(String args[]) {
int i = 0;
int j = 0;
label1: while (i++ < 5) {
label2: for (;;) {
label3: do {
System.out.print(i + " " + j + " ");
switch (i + j++) {
case 0:
continue label3;
case 1:
continue label2;
case 2:
continue label1;
case 3:
break;
case 4:
break label3;
case 5:
break label2;
case 6:
break label1;
default:
break label1;
}
} while (++j < 5);
}
}
}
}
Break in Java表示会退出循环。你的情况 while(++j<5)
Continue 跳过循环一次,这意味着循环将从顶部开始,continue 下面的任何内容都不会执行。
如果这对你有帮助,请给我投票。我是新来的,想拥有一些基本的声誉。谢谢!
以下行首先检查 0 < 5
,然后将 i
的值增加到 1
:
while (i++ < 5)
因此下面的语句打印 1 0 因为 i
的值现在是 1
而 j
的值是 0
:
System.out.print(i + " " + j + " ");
作为上述两个处理的结果,以下行被评估为switch (1 + 0)
然后j
的值增加到1
:
switch (i + j++)
作为上述处理的结果,case (1)
变为 true
,因此控制转到 label2
并再次返回到以下打印 [=66= 的语句]1 1:
System.out.print(i + " " + j + " ");
现在,以下行被评估为 switch (1 + 1)
然后 j
的值增加到 2
:
switch (i + j++)
作为上述处理的结果,case (2)
变成了 true
,因此控制转到 label1
从它落到下一行,它首先检查是否 1 < 5
然后将 i
的值增加到 2
:
while (i++ < 5)
然后它转到下面的语句打印 2 2 因为 i
的值现在是 2
而 j
的值是 2
:
System.out.print(i + " " + j + " ");
等等...
希望您清楚。除此之外,我还建议您关注 Java naming convention 例如根据命名约定,class example
应该是 class Example
。
如有任何问题,请随时发表评论doubt/issue。