gpt4 book ai didi

java - break不能在循环外使用

转载 作者:行者123 更新时间:2023-11-29 03:03:08 24 4
gpt4 key购买 nike

for(int i = 0; i < 10; ++i) {
outerTimer = new Timer() {
@Override
public void run() {
if(stopTimer) {
cancel();
break; // break cannot be used outside of a loop or a switch
}

repeatLoop();
}
};

outerTimer.run();
outerTimer.scheduleRepeating(tmptimerDuration);
}

在上面的代码中,当 stoptimer 为真时,我使用 break 来中断循环,但它会抛出错误

break cannot be used outside of a loop or a switch 

但我在计时器的 内部 使用了这个 break,其中计时器在另一个 for 循环内。

那么为什么我会收到错误消息?

最佳答案

匿名类在编译时成为独立的类。以下代码大致等效:

class ContainingClass {
void myMethod() {
for(int i = 0; i < 10; ++i) {
outerTimer = new MyAnonymousTimer();

outerTimer.run();
outerTimer.scheduleRepeating(tmptimerDuration);
}
}
}

class MyAnonymousTimer extends Timer {
@Override
public void run() {
if(stopTimer) {
cancel();
break; // break cannot be used outside of a loop or a switch
}

repeatLoop();
}
}

(名称 MyAnonymousTimer 不是类的实际名称;它更像是 ContainingClass$1)

因此,break 并不真正在循环中;您可以在循环中声明它只是语法上的便利。

您需要使用return,就像您停止执行任何其他void 方法一样。

关于java - break不能在循环外使用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33629172/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com