【发布时间】:2011-03-29 21:08:52
【问题描述】:
在此论坛中浏览问题和答案时,我发现一段代码是为循环命名的,以便将它们用于中断。喜欢
nameofloop:
for(){
for(){
if(){ break nameofloop;}
}
}
我是编程新手,以前没见过。我的问题是命名循环还有哪些其他用途?
【问题讨论】:
在此论坛中浏览问题和答案时,我发现一段代码是为循环命名的,以便将它们用于中断。喜欢
nameofloop:
for(){
for(){
if(){ break nameofloop;}
}
}
我是编程新手,以前没见过。我的问题是命名循环还有哪些其他用途?
【问题讨论】:
这不是一个带标签的循环,它只是一个您放置在任何地方的标签,然后您可以根据您的条件“中断”或“继续”。您还可以在带有 for 循环的嵌套 if-else 中使用,以中断几个用 if-else 装饰的循环,因此您可以避免设置大量标志并在 if-else 中测试它们以便在此嵌套中继续或不等级。
不鼓励使用它,因为它类似于 goto 并导致意大利面条代码。
我个人只使用过一次,前段时间,为了用 if-else 打破另外两个 for 循环中的一个 for 循环并在外部循环中继续,因为循环中的 break 打破了这个循环,但你继续外循环,而不是我的情况的最外循环。
【讨论】:
continue label; 只有在它实际上是一个被标记的循环时才有可能。)
你也可以说:
continue nameofloop;
...跳转到指定循环的开始。我认为 Java 中的标签没有其他用例。
【讨论】:
它被称为标记中断,它是分支语句的一种形式。您可以在Official Documention 中查看所有示例。
【讨论】:
官方上,我认为这被称为“标记中断”。它对于打破嵌套循环很有用,例如:
found:
for (int i = 0; i < 100; i++)
for (int j = 0; j < 100; i++)
if ( /* Some condition is met */)
break found;
我认为它对其他任何事情都没有用。
【讨论】:
我认为这是唯一使用它的情况。而且它不是常用的东西,因为更改标志的值以提前结束循环通常更具可读性。
【讨论】:
创建一个大小为 10 的数组 (int)。
让用户赋值-(使用for循环)。
求存储在数组中的值的总和和平均值 - (使用 for- 循环)。
【讨论】: