1、break 和 continue
在任何迭代语句的主体内,都可以使用 break 和 continue 来控制循环的流程。 其中,break 表示跳出当前循环体。而 continue 表示停止本次循环,开始下一次循环。
2、标签
“标签”是后面跟一个冒号的标识符。
对 Java 来说,唯一用到标签的地方是在循环语句之前。进一步说,它实际需要紧靠在循环语句的前方 —— 在标签和循环之间置入任何语句都是不明智的。而在循环之前设置标签的唯一理由是:我们希望在其中嵌套另一个循环或者一个开关。这是由于 break 和 continue 关键字通常只中断当前循环,但若搭配标签一起使用,它们就会中断并跳转到标签所在的地方开始执行。代码示例:
label1:
outer-iteration {
inner-iteration {
// ...
break; // [1]
// ...
continue; // [2]
// ...
continue label1; // [3]
// ...
break label1; // [4]
}
}
[1] break 中断内部循环,并在外部循环结束。
[2] continue 移回内部循环的起始处。但在条件 3 中,continue label1 却同时中断内部循环以及外部循环,并移至 label1 处。
[3] 随后,它实际是继续循环,但却从外部循环开始。
[4] break label1 也会中断所有循环,并回到 label1 处,但并不重新进入循环。也就是说,它实际是完全中止了两个循环。
- 简单的一个 continue 会退回最内层循环的开头(顶部),并继续执行。
- 带有标签的 continue 会到达标签的位置,并重新进入紧接在那个标签后面的循环。
- break 会中断当前循环,并移离当前标签的末尾。
- 带标签的 break 会中断当前循环,并移离由那个标签指示的循环的末尾。
重点是:在 Java 里需要使用标签的唯一理由就是因为有循环嵌套存在,而且想从多层嵌套中 break 或 continue。
3、switch
枚举类型被用来搭配 switch 工作.
Java 7 增加了在字符串上 switch 的用法.
一旦理解了 switch,你会明白这其实就是一个逻辑扩展的语法糖。新的编码方式能使得结果更清晰,更易于理解和维护。
【参考】On Java 8中文翻译