Java流程控制11:break、continue、goto

break,continue的区别:
- break在任何循环语句的主体部分,均可用break控制循环的流程。break用于强行退出循环,不执行循环中剩余的语句。(break语句也在switch语句中使用)
- continue语句用在循环与具体中,用于终止某次循环过程,既跳过循环体中尚未执行的语句,接着进行下一次是否执行循环的判定。
break代码示例(break的作用):
package com.wenjian.struct;
public class BreakDemo {
public static void main(String[] args) {
int i = 0;
while (i < 100) {
i++;
System.out.println(i);
if (i == 30) {
break; //强行退出循环,不执行循环中剩余的语句
}
}
System.out.println("123");
}
}
输出:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
123
进程已结束,退出代码 0
continue代码示例(continue的作用):
package com.wenjian.struct;
public class ContinueDemo {
public static void main(String[] args) {
int i = 0;
while (i < 100) {
i++;
if (i % 10 == 0) {
System.out.println();
continue; //终止某次循环过程,既跳过循环体中尚未执行的语句,接着进行下一次是否执行循环的判定
}
System.out.print(i);
}
//如果在这里加入System.out.print(i); ,那么输出跳出while循环,
//输出100
}
}
输出:
123456789
111213141516171819
212223242526272829
313233343536373839
414243444546474849
515253545556575859
616263646566676869
717273747576777879
818283848586878889
919293949596979899
进程已结束,退出代码 0
关于goto关键字(了解):
- goto关键字很早就在程序设计语言中出现。尽管goto仍是Java的一 个保留字,但并未在语言中得到正式使用; Java没有goto。然而,在break和continue这两个关键字的身上, 我们仍然能看出一些goto的影子—带标签的break和continue.
- “标签”是指后面跟一个冒号的标识符,例如: label:
- 对Java来说唯一用到标签的地方是在循环语句之前。而在循环之前设置标签的唯一理由是:我们希望在其中嵌套另个循环,由于break和continue关键字通常只中断当前循环,但若随同标签使用,它们就会中断到存在标签的地方。
虽然Java中的goto不起作用,但Java 中同样可以定义标签(当然Java中标签的设计不是为了goto),使用标识符加冒号的形式,如“mylabel:”。
goto标签的使用(不建议使用):
package com.wenjian.struct;
public class LableDemo {
public static void main(String[] args) {
//打印101~150之间的质数
//不建议使用
outer:for (int i = 101; i < 150; i++) {
for (int j = 2; j <= i / 2; j++) {
if (i % j == 0) {
continue outer;
}
}
System.out.print(i + " ");
}
}
}
输出:
101 103 107 109 113 127 131 137 139 149
进程已结束,退出代码 0

浙公网安备 33010602011771号