`

Java中跳出多层循环的简单方法

    博客分类:
  • Java
阅读更多

转自:http://developer.51cto.com/art/200902/108488.htm

在Java程序中可能使用多层循环来处理复杂的逻辑。但如果要从最内层循环跳出最外层循环是比较麻烦。下面的代码是一个三层循环的例子:

String[]arr=newString[]{"a","b","c"};
for(Strings:arr)
{
for(Stringss:arr)
{
for(Stringsss:arr)
{
System.out.println(sss);
}
} 
}

如果要从第三层循环跳出第一层循环,可以通过设置标志的方法来实现,但这比较麻烦。当然,如何使用过C或C++的开发人员可以想到使用goto语句,如下面的代码所示:

 

String[]arr=newString[]{"a","b","c"};
 
for(Strings:arr)
{
for(Stringss:arr)
{
for(Stringsss:arr)
{
System.out.println(sss);
goto label;
}
} 
}
label:

 

虽然上面的代码看似可行,不过Java虽然还有goto关键字,但这个关键字却不能使用(Java编译器会抛出异常)。不过Java还提供了另外一种类似goto的解决方案,这就是break n和continue n。其中n表示标签名。只是在Java中只能在for、while、do...while三种循环语句前面定义,标签与循环体之间不能有任何其他的语句,如下面的标签定义是合法的:

 

label: //定义标签
for(inti=0;i<10;i++)
{
... ...
}

 

下面的标签定义是不合法的:

 

label: //定义标签
System.out.println("abcd"); //此处不能有任何Java语句
for(inti=0;i<10;i++)
{
... ...
}

 

使用break n跳出多层循环的代码如下:

 

labelA:
for(Strings:arr)
{
for(Stringss:arr)
{
for(Stringsss:arr)
{
System.out.print(sss);
breaklabelA;
}
} 
}

 

上面的代码只输出了一个a,在第三层使用break labelA可以理解为如下的代码形式(虽然这段代码并不符合Java语法规则):

 

for(Strings:arr)
{
for(Stringss:arr)
{
for(Stringsss:arr)
{
System.out.print(sss);
gotolabelA;
}
} 
}
labelA:

 

当然,还可以使用continue labelA继续执行某一层的循环,代码如下:

 

labelA:
for(Strings:arr)
{
for(Stringss:arr)
{
for(Stringsss:arr)
{
System.out.print(sss);
continuelabelA;
}
} 
}

 

上面的代码输出“aaa”,读者可以将上面的代码理解为如下的形式(只是代码形式,并不符合Java语法规则):

 

for(Strings:arr)
{
for(Stringss:arr)
{
for(Stringsss:arr)
{
System.out.print(sss);
gotolabelA;
}
} 
labelA:
}

 

当然,也可以按同样的方法跳出或继续第二层循环,代码如下:

 

for(Strings:arr)
{
labelA:
for(Stringss:arr)
{
for(Stringsss:arr)
{
System.out.print(sss);
breaklabelA;
}
} 
}

 

上面的代码输出“aaa”。

 

for(Strings:arr)
{
labelA:
for(Stringss:arr)
{
for(Stringsss:arr)
{
System.out.print(sss);
continuelabelA;
}
} 
}

 

上面的代码输出“aaaaaaaaa”。

分享到:
评论

相关推荐

    Java跳出多重嵌套循环代码实例

    相比之下,我们可以使用Java中的标签(label)来更直观地跳出多层循环。标签是Java中的一个特殊语法,可以在任何语句前加上,然后在`break`或`continue`语句中引用它,这样就可以指定跳出哪个特定的循环。下面是一个...

    Java 8跳过本次循环,继续执行以及跳出循环,终止循环的代码实例

    Java 8中有多种循环方式,其中包括老式的for循环、高级的for each循环和Java 8出的foreach循环。今天我们将讨论如何在Java 8中跳过本次循环、继续执行和跳出循环。 跳过本次循环 在Java 8的foreach循环中,使用...

    在Java中如何跳出当前的多重嵌套循环?

    在Java中,要想跳出多重循环,可以在外面的循环语句前定义一个标号,然后在里层循环体的代码中使用带有标号的break 语句,即可跳出外层循环。例如: ok: for(int i=0;i&lt;10;i++) { for(int j=0;j&lt;10;j++) ...

    Java跳出多重嵌套循环

     我们可以在循环体开头设置一个标志位,也是设置一个标记,然后使用带此标号的break语句跳出多重循环。 public class BreaklFor { public static void main(String args[]){ OK: //设置一个标记 使用带此标记...

    Java跳出多重嵌套循环过程解析

    在上述代码中,当`j`等于3时,程序抛出一个异常,随后被`catch`块捕获,从而退出整个多重循环结构。 总结来说,Java提供了多种方式来跳出多重嵌套循环,包括使用标号、修改外层循环条件以及抛出异常。在实际编程中...

    第02章 Java编程基础 15 多重循环示例与小结

    总的来说,理解和掌握Java中的多重循环对于成为一名合格的Java程序员至关重要。通过合理地运用多重循环,我们能够解决许多复杂的问题,实现高效的代码。在实际编程中,应结合具体需求,灵活运用各种循环结构,确保...

    Java循环技巧大全

    在Java编程中,循环结构是实现重复执行特定代码块的基本方法之一。本文将深入探讨Java中的循环技巧,特别是如何利用不同类型的循环控制语句来优化程序性能,提高代码可读性和可维护性。 #### 一、基本循环结构 ...

    4.多重循环+方法+递归作业1

    在Java中,常见的多重循环有for循环嵌套for循环,或者for循环嵌套while循环等。多重循环用于处理复杂的数据结构,如矩阵、多维数组等。在题目中的例子中,可能涉及到在循环中调用方法来处理数据。 2. **方法**:在...

    练习Java循环的一些源代码例子

    在Java中,循环是程序控制结构的重要组成部分,用于重复执行一段代码直到满足特定条件为止。循环在处理重复任务、数组遍历以及复杂的逻辑判断等方面发挥着关键作用。以下是对Java循环的一些详细知识点的讲解: 1. *...

    01-Java语言基础(语句-For循环嵌套)

    在Java的学习过程中,掌握基础语法是至关重要的,其中“语句”是构成程序的基本单元,而“For循环嵌套”则是Java中一种高效控制流程的方法。 在Java中,For循环是一种预定义结构,常用于迭代执行一段代码块,直到...

    javaScript如何跳出多重循环break、continue

    在JavaScript编程中,控制循环流程的两个关键语句是`break`和`continue`,它们在处理多重循环时尤其有用。下面将详细解释这两个语句的区别及其在多重循环中的应用。 `break`语句用于立即终止当前循环,无论循环条件...

    Java循环跳转语句之break共3页.pdf.zip

    本文件"Java循环跳转语句之break共3页.pdf.zip"很可能是详细介绍了`break`在不同类型的循环(如`for`、`while`、`do-while`)中的应用,以及其在多层嵌套循环中的作用。 1. **`break`语句的基本概念**:`break`是一...

    java基础知识学习教程-4条件分支与循环.pptx

    当存在多层嵌套循环时,break语句只跳出当前循环层。continue语句continue是另外一种循环控制语句,作用是让程序立刻跳过循环体continue后面的语句而直接进入到下一次循环开始处。 4.4 嵌套使用案例 所谓的嵌套,...

    Java面试宝典2017版本高清.pdf版

    - Java中跳出多重嵌套循环的方法; - Java中switch语句能否作用于不同数据类型的变量; - Java中short类型运算时的自动类型转换问题; - Java中char类型变量是否能够存储中文字符; - Java中2乘以8的最有效计算方式...

    关于Java中流程控制的复习

    在多重循环中,`break`和`continue`语句可以帮助跳出当前循环层级。例如,在一个三层嵌套循环中,`break`会跳出整个三层循环,而`continue`则仅结束当前的内部循环,继续下一次外部循环的执行。在购买衣服的例子中,...

    Java 循环结构.pdf

    - 使用标签可以指定循环的跳出层次,多用于多层嵌套循环中。 - 基本语法:`label: 循环结构;`,在需要跳出的语句前使用`break label;` 理解并熟练运用这些循环结构是编写高效、可读性强的Java代码的关键。在实际...

    JAVA多层IF嵌套-判断闰年及日期是否正确

    JAVA 多层 IF 嵌套 - 判断闰年及日期是否正确 本文主要讲解如何使用 JAVA 语言来判断一个日期字符串是否正确,包括判断闰年和日期的正确性。通过本文,初学者可以进一步了解 JAVA 的 IF 循环语句和字符串处理。 一...

    java葵花宝典-2013.doc

    4. 在JAVA中可以使用标号跳出当前的多重嵌套循环,例如,ok:for(int i=0;i;i++){for(int j=0;j;j++){System.out.println(“i=” + i + “,j=” + j);if(j == 5) break ok;}} Java面向对象部分: 1. Java中的继承是...

    Java面试宝典2013最新版

    3. Java中跳出多重嵌套循环,通常使用标签(label)来实现。 4. switch语句在Java中有限制,不能作用于byte、long等基本数据类型上,但可以作用于String类。 5. Java中char类型变量可以存储一个中文汉字,因为Java...

    Java面试宝典2018版

    4. Java中跳出多重循环通常使用标签(label)配合break语句。 5. switch语句支持byte、short、char、int和枚举类型,不支持long、String等类型。 6. short类型变量自增时会出现类型提升问题,需要显式转换。 7. char...

Global site tag (gtag.js) - Google Analytics