java - 简述java continue & break以下代码
问题描述
下面简单解释一下代码的作用。关于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);
}
}
}
}
解决方案
以下行首先检查是否0 < 5
,然后增加i
to的值1
:
while (i++ < 5)
因此,以下语句将1 0打印为i
is now1
和j
is的值0
:
System.out.print(i + " " + j + " ");
作为上述两个处理的结果,下面的行被评估为switch (1 + 0)
,然后 的值j
增加到1
:
switch (i + j++)
作为上述处理的结果,case (1)
控制true
转到label2
并再次返回到打印1 1的以下语句:
System.out.print(i + " " + j + " ");
现在,以下行被评估为switch (1 + 1)
,然后 的值j
增加到2
:
switch (i + j++)
作为上述处理的结果,case (2)
变为true
并因此控制label1
从它落入的位置转到以下行,该行首先检查是否1 < 5
,然后增加i
to的值2
:
while (i++ < 5)
然后它转到以下语句,将2 2打印为i
is now2
和j
is的值2
:
System.out.print(i + " " + j + " ");
等等...
我希望,这对你来说很清楚。除此之外,我还建议您遵循Java 命名约定,例如class example
应该按照class Example
命名约定。
如有任何疑问/问题,请随时发表评论。
推荐阅读
- python - 两个 django 项目共享同一个数据库用户表
- arrays - php如何显示今天和未来四天
- python - 如何使用python根据时间对Y轴进行排序?
- android - Android Accessibility Service 未在 oreo 中收到通知
- wso2 - WSO2 APIM 约束违反 CON_APP_KEY
- angular - 突出显示剑道网格的第一行
- java - splunk 检查消息是否包含某些字符串
- javascript - 从java中的base64字符串解码表情符号
- angular - Angular 2+ 中的 $rootScope.new()
- php - php 检索会话变量以限制对页面的访问