跳出多层循环的简单方法(Java版)
本文为原创,如需转载,请注明作者和出处,谢谢!
在Java程序中可能使用多层循环来处理复杂的逻辑。但如果要从最内层循环跳出最外层循环是比较麻烦。下面的代码是一个三层循环的例子:
String[] arr= new String[]{"a", "b", "c"};
for(String s: arr)
{
for(String ss: arr)
{
for(String sss: arr)
{
System.out.println(sss);
}
}
}
如果要从第三层循环跳出第一层循环,可以通过设置标志的方法来实现,但这比较麻烦。当然,如何使用过C或C++的开发人员可以想到使用goto语句,如下面的代码所示:
String[] arr= new String[]{"a", "b", "c"};
for(String s: arr)
{
for(String ss: arr)
{
for(String sss: 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(int i = 0; i < 10; i++)
{
... ...
}
下面的标签定义是不合法的:
label: // 定义标签
System.out.println("abcd"); // 此处不能有任何Java语句
for(int i = 0; i < 10; i++)
{
... ...
}
使用break n跳出多层循环的代码如下:
labelA:
for(String s: arr)
{
for(String ss: arr)
{
for(String sss: arr)
{
System.out.print(sss);
break labelA;
}
}
}
上面的代码只输出了一个a,在第三层使用break labelA可以理解为如下的代码形式(虽然这段代码并不符合Java语法规则):
for(String s: arr)
{
for(String ss: arr)
{
for(String sss: arr)
{
System.out.print(sss);
goto labelA;
}
}
}
labelA:
当然,还可以使用continue labelA继续执行某一层的循环,代码如下:
labelA:
for(String s: arr)
{
for(String ss: arr)
{
for(String sss: arr)
{
System.out.print(sss);
continue labelA;
}
}
}
上面的代码输出“aaa”,读者可以将上面的代码理解为如下的形式(只是代码形式,并不符合Java语法规则):
for(String s: arr)
{
for(String ss: arr)
{
for(String sss: arr)
{
System.out.print(sss);
goto labelA;
}
}
labelA:
}
当然,也可以按同样的方法跳出或继续第二层循环,代码如下:
for(String s: arr)
{
labelA:
for(String ss: arr)
{
for(String sss: arr)
{
System.out.print(sss);
break labelA;
}
}
}
上面的代码输出“aaa”。
for(String s: arr)
{
labelA:
for(String ss: arr)
{
for(String sss: arr)
{
System.out.print(sss);
continue labelA;
}
}
}
上面的代码输出“aaaaaaaaa”。
分享到:
相关推荐
java跳出循环break;return;continue使用 . java跳出循环break;return;continue使用 . java跳出循环break;return;continue使用
另一个跳出循环的命令是“退出本次循环”,英文名为“跳过本次循环”,它不会结束整个循环,而是跳过当前循环体内的剩余代码,直接进入下一次循环的判断。这在你需要忽略当前循环的某些处理,但又不希望中断整个...
Delphi 跳出循环的几种方法Delphi 跳出循环的几种方法 我常用的几种方法 希望大家看看 那个是大家常用的而且比较不错的 以下是引用片段: Delphi中break,exit,abort跳出循环的比较 exit: 退出函数体 abort: ...
Java 8跳过本次循环、继续执行以及跳出循环的代码实例 Java 8中有多种循环方式,其中包括老式的for循环、高级的for each循环和Java 8出的foreach循环。今天我们将讨论如何在Java 8中跳过本次循环、继续执行和跳出...
下面将详细讨论两种常见的方法来解决Java中的跳出递归循环问题。 **1. 使用标志(Flag)** 一个常见的方法是通过设置一个全局变量或类成员变量作为递归的退出标志。当满足特定条件时,改变这个标志,递归函数在...
在Java编程中,循环结构是实现重复执行特定代码块的基本方法之一。本文将深入探讨Java中的循环技巧,特别是如何利用不同类型的循环控制语句来优化程序性能,提高代码可读性和可维护性。 #### 一、基本循环结构 ...
如果需要从多层嵌套的循环中跳出来,`break`语句不能直接做到这一点,因为它只能跳出最近的一层循环。为了解决这个问题,JavaScript提供了一种特殊的语法:在`break`后面跟一个标签(label),这样就可以指定跳出...
也就是说,当程序执行到`continue`时,它会跳过本次循环中的剩余部分,直接进入下一次循环判断条件的阶段。这在需要对某些特殊情况进行特殊处理时非常有用,可以避免在每次循环中都进行相同的检查。 ### 示例分析 ...
6. **循环嵌套**:一个循环可以嵌套在另一个循环内部,形成多层循环。这在处理二维数组、矩阵或其他需要多层次遍历的情况时很有用。 通过上述知识点,我们可以编写出各种满足不同需求的循环逻辑。在实际编程中,...
在本Java实验报告中,我们关注的是循环结构的应用,特别是在解决实际问题——游戏中生命力购买的最佳策略。实验的主要目的是让学生深入理解变量与常量的定义,掌握while循环、if语句和break语句的使用,以及如何运用...
JAVA 多层 IF 嵌套 - 判断闰年及日期是否正确 本文主要讲解如何使用 JAVA 语言来判断一个日期字符串是否正确,包括判断闰年和日期的正确性。通过本文,初学者可以进一步了解 JAVA 的 IF 循环语句和字符串处理。 一...
然而,当需要在满足特定条件时跳出多层循环时,简单的`break`语句往往无法满足需求。本篇文章将详细介绍如何在Java中优雅地跳出多重嵌套循环,并通过实例代码进行解析。 首先,我们来看一个传统的多重嵌套循环的...
### Java程序设计基础:深入解析for循环 #### 一、for循环概述 在Java程序设计中,循环控制结构是编程的基础之一,它允许程序代码多次重复执行特定的任务或操作。`for`循环作为循环结构中的一种,是Java中最常用且...
4. **跳出嵌套**:在循环体内,可以使用`break`语句提前结束整个循环,或者使用`continue`跳过当前循环的剩余部分。 5. **多层嵌套**:虽然两层嵌套常见,但也可以有更多层。理解每一层的作用并保持良好的代码组织至...
Java循环语句详解 Java中的循环语句是指在一个程序中,重复执行某些语句的语句。循环语句有三种基本形式:for循环、while循环和do-while循环。每种循环语句都有其特点和使用场景。在本实验中,我们将详细介绍这三种...
理解并熟练掌握这些循环结构对于编写Java程序至关重要,无论是简单的数据处理还是复杂的算法实现,循环都是核心组成部分。通过合理地运用这些循环类型,可以编写出高效、简洁的代码。在实际编程中,要根据具体需求...
Java语言提供了三种主要的循环结构:for循环、while循环以及do-while循环。这些循环结构在处理迭代和重复任务时发挥着重要作用。下面我们将深入探讨这三种循环结构及其在Java中的应用。 首先,我们来看for循环。for...
当存在多层嵌套循环时,break语句只跳出当前循环层。continue语句continue是另外一种循环控制语句,作用是让程序立刻跳过循环体continue后面的语句而直接进入到下一次循环开始处。 4.4 嵌套使用案例 所谓的嵌套,...
4. **在多层嵌套循环中的使用**:在多层循环中,`break`可以跳出最内层的循环。如果需要同时跳出外层循环,通常需要配合使用标签(label)。 ```java outerLoop: for (int i = 0; i ; i++) { for (int j = 0; j ; ...