我们都知道关键字 ——
- break 是 默认跳出当前距离此 break 最近的一个 for / while 循环语句块 或 switch 开关语句块;
例-1:跳出循环
for(;;) {
while(true) {
break;//退出离此break最近的包裹着此break的一层循环(这里是while),去执行while外面的代码,此处是for循环 ** 重要注释
}
}
例-2:跳出switch开关语句
enum Signal{
Green, Yellow, Red
}
Signal signal = Signal.Green;
Signal color = null;
switch(signal) {
case Green : color = Signal.Green;
break; // 退出switch
case Yellow : color = Signal.Yellow;
break; // 退出switch
case Red : color = Signal.Red;
break; // 退出整个switch
default : break; // 退出整个switch
}
- continue 是 使用在 循环条件中的关键字(使用场合),continue 使 它后面的事务指令代码被跳过执行(不执行),直接去执行距离 此continue 最近的且包裹着它的 循环语句块的循环条件判断语句 —— 即循环关键字 - while / for 后面紧跟着的括号中的逻辑判断语句,此语句为真(true),则继续执行这个循环;此语句为假(false),则终止当前要执行的循环语句块,去执行紧接着此循环语句块的后面的语句指令。
例-3:continue 条件满足 - 继续执行正在执行的循环语句块的下一次的循环操作;tiao条件不满足 - 终止此循环
boolean flag = true;
//循环条件满足的情形
while(flag) {
if(flag) {
flag = true; //
continue; // 跳过while循环语句块中在此continue后面的语句,去直接执行while的循环条件判断语句
flag = false; // 此句及后面的输出语句将被跳过执行
}
System.out.println("aaaa");
}
boolean tag = true;
//不能继续循环,终止当前循环,去执行此循环语句块后面的语句
for(;;tag) {
if(tag) {
tag = false; //终止循环的条件
continue; // 跳过 for 循环语句块中在此continue后面的语句,去直接执行 for 的循环条件判断语句
tag = true; // 此句及后面的输出语句将被跳过执行
}
System.out.println("aaaa");
}
//跳出 for循环体 后,被执行的指令语句
System.out.println("Hello, I have been executed....");
注:这里的例子中的注释,更形象的说明的 continue / break 的作用,应注意阅读。
continue 和 beak 还能 跳到 指定的 标志(语法——自定义名+冒号(:),如 - condition: )
先简单写点 continue 和 break 的主要区别:使用的场景不同
- break - 可以使用在 for/while循环和switch开关语句块中;
- continue - 只能用在 for/while循环中。
实际上 continue 和 break 就相当于 已经有默认条件的 goto 指令。