大家都知道,java中的break是用来跳出循环的,例如
public class Test {
public static void main(String[] args) {
for(int i=0; i<10; i++){
System.out.print(i + " ");
if(i == 5){
break;
}
}
}
}
可以看到输出 0 1 2 3 4 5
很明显的这只是跳出一层循环,其实break的作用远不止于此。
例如,可以设置标签,让它在条件达到时,直接终止之后的循环,跳到标签出:
public class Test {
public static void main(String[] args) {
L:
for(int i=0; i<10; i++){
for(int j=0; j<10; j++){
for(int k=0; k<10; k++){
System.out.print(k + " ");
if(k == 5){
break L;
}
}
}
}
}
}
会输出: 0 1 2 3 4 5
因为标签在最外层循环,所以整个三层循环都已经终止。
既然可以跳出最外层循环,那么也可以跳到任意一层循环中?试试,
为了使输出少一点,稍微改下循环次数:
public class Test {
public static void main(String[] args) {
for(int i=0; i<2; i++){
L:
for(int j=0; j<2; j++){
for(int k=0; k<10; k++){
System.out.print(k + " ");
if(k == 5){
break L;
}
}
}
}
}
}
也可以看到预料的输出:0 1 2 3 4 5 0 1 2 3 4 5
那么不妨再多思考下,java的break能否像C语言的goto一样,跳到任意位置?同样用例子试下,第一次我们试着把标签放到整个循环之后去:
public class Test {
public static void main(String[] args) {
for(int i=0; i<2; i++){
for(int j=0; j<2; j++){
for(int k=0; k<10; k++){
System.out.print(k + " ");
if(k == 5){
break L;
}
}
}
}
L:
System.out.println("跳到这儿了");
}
}
但想法是好的,现实是残酷的,在编译时便已经报错:
The label L is missing.
好吧,既然是找不到L标签的位置,那么我把L标签放到循环上方去好了:
public class Test {
public static void main(String[] args) {
L:
System.out.println("跳到这儿了");
System.out.println("接下来开始for循环:");
for(int i=0; i<2; i++){
for(int j=0; j<2; j++){
for(int k=0; k<10; k++){
System.out.print(k + " ");
if(k == 5){
break L;
}
}
}
}
}
}
然后还是报了同样的错:The label L is missing.
此段程序跟第二段程序相比,只是中间多了段代码,如果把标签L与循环之间的输出语句去掉的话,可以看到就没有错了。
既然最外层循环与标签间不能有其他语句,那我在多层循环之间可否添加呢?
public class Test {
public static void main(String[] args) {
for(int i=0; i<2; i++){
L:
System.out.println("跳到这儿了");
for(int j=0; j<2; j++){
for(int k=0; k<10; k++){
System.out.print(k + " ");
if(k == 5){
break L;
}
}
}
}
}
}
同样的错:The label L is missing.
好吧,还是不行,那我再换种思路,既然标签是在for循环中使用的,那么我标签后再加上一个for循环可否?
public class Test {
public static void main(String[] args) {
for(int i=0; i<2; i++){
L:
for(int m=0; m<10; m++){
}
for(int j=0; j<2; j++){
for(int k=0; k<10; k++){
System.out.print(k + " ");
if(k == 5){
break L;
}
}
}
}
}
}
同样的错:The label L is missing.
再多发散思维思考下,既然在for循环中可以这样使用,那么while循环也一样?
public class Test {
public static void main(String[] args) {
int i = 0;
L:
while(true){
while(true){
System.out.print(i+" ");
i ++;
if(i == 5){
break L;
}
}
}
}
}
亲测可行,看到输出 0 1 2 3 4 。
所以可以得出以下结论:
1.break可以用来跳出一层循环。
2.如果加上标签,在break后添上标签名,可以用来跳出任意层循环。
3.标签与for语句之间不能有其他任何语句,即使是另一个for循环也不行。
4.java中的break不能像C语言中的goto一样使用。
5.for循环与while循环中的标签同样使用方法。
分享到:
相关推荐
### JavaScript中的多重循环控制:`break`与`continue` 在JavaScript编程中,循环结构是非常重要的一个组成部分,它能够帮助我们高效地处理重复性任务。在实际应用中,我们经常会遇到需要控制多层嵌套循环的情况,...
Abort 是从 EAbort 过来的,可以激发 exception,其实质就是 Abort = RaiseException(),是一个不出现对话框的异常。所以 Abort 的行为和异常是一样的,其代码执行顺序也是follow异常的流程。 例如: try (1) //执行...
在标题提到的"PHP中使用break跳出多重循环代码实例"中,我们将深入探讨如何使用`break`语句以及其在多重循环中的应用。 首先,我们来看一下提供的代码示例: ```php $array = array(1, 2, 3, 4, 5, 6); for ($i = ...
以上就是如何使用break和continue跳出多重循环的方法,其中关键在于标签的使用,让break和continue能够控制到正确的循环层级。虽然break和continue在某些情况下可以使代码更加简洁,但过度使用它们可能会影响代码的...
我们可以在循环体开头设置一个标志位,也是设置一个标记,然后使用带此标号的break语句跳出多重循环。 public class BreaklFor { public static void main(String args[]){ OK: //设置一个标记 使用带此标记...
### Python 跳出多重循环的方法 在编程中,经常需要使用到循环结构来重复执行某些操作。然而,在复杂的逻辑处理中,有时我们需要在特定条件下提前退出这些循环,尤其是在多重循环的情况下。Python 提供了多种方式来...
此外,理解并掌握如何跳出多重循环也是至关重要的。在Java中,我们可以使用`break`语句跳出当前循环,`continue`语句则跳过当前循环的剩余部分,直接进入下一次循环。如果需要跳出所有嵌套循环,可以使用标签和`...
下面是一个使用标签的例子: ```java int i = 0; ok: // 定义标签ok while (true) { while (true) { i++; System.out.println(i); if (i > 50) { break ok; // 引用标签ok,跳出外层循环 } } } ``` 在这个...
在上述代码中,当`j`等于3时,程序抛出一个异常,随后被`catch`块捕获,从而退出整个多重循环结构。 总结来说,Java提供了多种方式来跳出多重嵌套循环,包括使用标号、修改外层循环条件以及抛出异常。在实际编程中...
**问题 2:不会使用 `break` 跳出多重循环** 在处理多重循环(例如嵌套的`for`循环)时,`break`只会影响最内层的循环。如果需要跳出外层循环,需要使用标签(label)来标识目标循环,然后在`break`语句中引用这个...
然而,我们有时候会需要跳出多重循环,而break只能够跳出一层循环,比如: for i in range(10): for j in range(10): if i+j > 5: print i,j break 这样的代码并非说找到一组 i+j > 5就停止,而是连续找到10组...
在Java中,要想跳出多重循环,可以在外面的循环语句前定义一个标号,然后在里层循环体的代码中使用带有标号的break 语句,即可跳出外层循环。例如: ok: for(int i=0;i<10;i++) { for(int j=0;j<10;j++) ...
1. **多重循环**:多重循环是指在一个循环内部嵌套另一个或多个循环。在Java中,常见的多重循环有for循环嵌套for循环,或者for循环嵌套while循环等。多重循环用于处理复杂的数据结构,如矩阵、多维数组等。在题目中...
需要注意的是,Break 语句只能结束包含它的最内层循环,而不能跳出多重循环。 在使用 Break 语句时,需要与 if 语句一起使用,当条件满足(或不满足)时,负责退出循环。如果循环体中使用 switch 语句,而 Break ...
在这个例子中,当输入的整数小于等于0时,`continue`语句使程序直接跳过此次循环的其余部分,不增加`num`和`sum`,然后检查下一个整数。 【goto语句的使用与避免】 `goto`语句在C语言中允许无条件地跳转到程序的...
#### 三、跳出多重循环 然而,当涉及到多重循环时,情况变得复杂起来。下面详细介绍几种常用的技术: ##### 1. 使用标记变量 这是一种常见的策略,适用于需要控制多重循环的情况。基本思想是在外部循环中设置一个...
5. **跳出循环语句**:`BREAK`用于立即退出当前循环,`CONTINUE`跳过当前循环的剩余部分,继续下一轮循环。 6. **逻辑控制结构**:`GOTO`语句虽然可用,但通常不推荐使用,因为它可能导致难以理解和调试的代码。...
多重循环是指在一个循环体内嵌套另一个循环体。多重循环可以使用while循环、do-while循环或for循环来实现。 循环跳转语句: 循环跳转语句是指在循环体内使用的跳转语句,例如break语句和continue语句。break语句...