您的位置:首页 > 产品设计 > UI/UE

Java 控制语句 break 和 continue 的用法

2018-01-07 18:13 435 查看
本文转载自博主个人网站:http://staunchkai.com

break(跳出)

break 只作用于
switch
语句和
循环
语句

// 作用范围:
for (int x = 0; x < 5; x++){
if (x == 1)
break;
System.out.println("x=" + x);
}


此示例结果为:x=0;

阅读一遍:

- x 初始值为 0

- 条件 x < 5 满足

- if 语句判断 x == 1,结果为假,跳过 break,执行下一句

- 输出语句 x=0

- 第一遍循环结束,执行 x++,此时 x 的值为 1

- 条件 x < 5 满足

- if 语句判断 x == 1,结果为真

- 执行 break

- 全部结束

这个例子说明了 break 的作用范围,if 的存在仅仅是为了当条件满足时,执行 break,然后整个循环跳出,不再继续循环,要记住 break 只作用于
switch
语句和
循环
语句

// 算一下结果
for (int y = 0; y < 3; y++){
for (int z = 0; z < 4; z++){
System.out.println("y=" + y);
break;
}
}


此示例结果为:

y=0

y=1

y=2

阅读一遍:

- y 初始值为 0

- 条件 y < 3 满足

- 执行里面的 for

- z 初始值为 0

- 条件 z < 4 满足

- 输出语句 y = 0

- 执行 break,这时里面的 for 循环跳出结束,应继续执行外层 for 循环

- y++ 这时 y 的值为 1

- 重复······

- 输出语句 y=1

- 重复······

- 输出语句 y=2

- 重复······

- y++ 后 y 的值为 3,y < 3 不再满足

- 整个循环结束

如果想要跳外面那层 for 循环,该怎么办?

// 仔细看一下,和上面的有什么不一样
outer:for (int y = 0; y < 3; y++){
inner:for (int z = 0; z < 4; z++){
System.out.println("y=" + y);
break outer;
}
}


此示例结果为:y=0

此示例中,两个
for
前面都分别带有
outer
inner
,这两个的作用只是起一个标识的作用,相当于做了一个标记,外层的 for 名字叫做 outer,内层的 for 名字叫做 inner,在 break 后面添加 outer,就是告诉 break,要跳出的是那个叫做 outer 的外层 for。

这种标志可以随便写,当然,在写的时候最起码得让人看得懂,这种用法在实际中非常少,在这里写出来,只是为了防止万一情况

continue(继续)

continue 只作用于
循环
结构

for (int x = 0; x < 3; x++){
continue;
System.out.println("x=" +x);
}


这是一个错误的代码,没法运行

它会提示:「错误: 无法访问的语句 System.out.println(“x=” +x);」

先读一遍:

- x 初始值为 0

- 条件 x < 3 满足

- 执行 continue,continue 这时告诉循环,回去继续循环

- 这时直接执行 x++

- 那第三行的输出语句就根本访问不到,所以报错

所以,一般在 continue 后面不要添加执行语句

for (int x = 0; x < 10; x++){
if (x % 2 == 0)
continue;
System.out.println("x=" +x);
}


此示例结果为:

x=1

x=3

x=5

x=7

x=9

再读一遍:

- x 初始值为 0

- 条件 x < 10 满足

- if 条件 x % 2 == 0 为真

- 执行 continue,回去执行 x++

- 这时 x 的值为 1

- 条件 x < 10 满足

- if 条件为假

- 那就不执行 continue,到第四行,输出语句

- 重复重复······

在这里,continue 就是结束本次循环,继续下一次循环

同样 continue 也可以使用标识

outer:for (int y = 0; y < 3; y++){
inner:for (int z = 0; z < 4; z++){
System.out.println("y=" + y);
continue outer;
}
}


此示例结果为:

y=0

y=1

y=2

这个示例就不读了,好好看,其内容大同小异
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
相关文章推荐