gpt4 book ai didi

Java标签?外、中、内

转载 作者:搜寻专家 更新时间:2023-11-01 04:05:48 33 4
gpt4 key购买 nike

请不要担心循环,但我的问题是关于这些关键字:outermiddleinner。它们不是声明为实例变量,为什么IDE让代码编译?我在谷歌上搜索了一下,这是java标签吗? Java中的某种关键字?谢谢大家。

public class LoopTest{

public static void main(String[] args){
int counter = 0;

outer:
for(int i = 0; i < 3; i++){
middle:
for(int j = 0; j < 3; j++){
inner:
for(int k = 0; k < 3; k++){{
}
if(k - j > 0){
break middle;
}
counter++;
}
}
}
System.out.println(counter);
}

最佳答案

Java 支持标签。这在 this article from Oracle 中有描述。 .

因此,基本上您可以使用标签进行循环,并且可以使用关键字 continuebreak 等来控制循环的流程。

以下示例说明了如何使用带有 break 关键字的循环。当调用 break 时,它会终止带标签的语句,即 someLabel

之后的语句
someLabel:
for (i = 0; i < 100; i++) {
for (j = 0; j < 100; j++) {
if (i % 20 == 0) {
break someLabel;
}
}
}

continue 关键字以相同的方式处理标签。当您调用例如continue someLabel; 外层循环将继续。

作为per this SO-question你也可以这样构造:

BlockSegment:
if (conditionIsTrue) {
doSomeProcessing ();
if (resultOfProcessingIsFalse()) break BlockSegment;
otherwiseDoSomeMoreProcessing();
// These lines get skipped if the break statement
// above gets executed
}
// This is where you resume execution after the break
anotherStatement();

就我个人而言,我绝不推荐使用标签。相反,我发现如果您重新排列代码以便不需要标签(例如,通过将复杂的代码分解为更小的函数),代码会更容易理解。

关于Java标签?外、中、内,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27696712/

33 4 0