文
章
目
录
章
目
录
在 Java 中,我们可以标记循环并给它们命名。当我们想要中断或继续多个嵌套循环中的特定循环时,这些命名或标记的循环在嵌套循环的情况下很有帮助。
Java 中的标记块在逻辑上与 C/C++ 中的语句类似goto
。
1. 语法
标签是任何有效的标识符,后跟冒号。例如,在下面的代码中,我们创建两个带标签的语句:
outer_loop:
for (int i = 0; i < array.length; i++) {
inner_loop:
for (int j = 0; j < array.length; j++) {
//...
}
//...
}
在上面的例子中,我们有两个循环,我们将它们标记为outer_loop和inner_loop。当我们想要根据内循环中写入的条件终止外循环时,这很有用。
2. 简单中断和标签中断的区别
Java 中的简单break语句仅终止指定它的立即循环。因此,即使我们从内循环中中断,它仍然会继续执行外循环的当前迭代。
我们必须使用带标签的break语句来终止特定的循环,如上例中的outer_loop 。
以同样的方式,我们可以使用带标签的continue语句跳转到嵌套循环层次结构中任何特定循环的下一次迭代。
continue outer_loop;
3.带有其他条件语句的标记语句
值得一提的是,带标签的break和continue语句可以与其他流程控制语句一起使用,例如if-else语句、while循环等。
以下程序使用带标签的break语句和while循环。每当在程序执行过程中,遇到带标签的break语句,则控件立即跳出封闭的带标签的块。
hackit:
while (Some condition)
{
if ( a specific condition )
break hackit; //label
else
//normal business logic goes here..
}
同样,我们也可以将这些语句与经典的if-else语句一起使用。
int i = 10;
outer_if:
if(i > 0) {
inner_if:
if( i> 5) {
//...
break outer_if;
} else {
//...
}
}
4。结论
在这个简单的 Java 教程中,我们讨论了以下几点:
- Java不像其他一些编程语言那样具有通用的goto语句。
- 简单的break和continue语句会改变程序的正常流程控制。我们可以指定命名标签。标签应该是一个带有冒号的有效Java标识符。
- 带标签的块只能与break和continue语句一起使用。
- 带标签的break和continue语句必须在其作用域内调用。我们不能在标签块的作用域之外引用它们。
- break语句会立即跳转到适当复合语句的末尾(并且跳出该语句块)。
- continue语句会立即跳转到适当循环的下一个迭代(如果有的话)。
教程 Java基础教程
文章目录 前言 第1章 Java语言基础 第2章 流程控制语句 第3章 面向对象编程 第4章 Java 字符 […]