假设我们有以下两种方法:
public static void repeat(){
while (1){
otherFunc();
}
}
public static void otherFunc(){
if (something){
//Here
}
}
是否有办法在//Here
的位置导致break
函数中的return
或repeat
?
最初,我认为绝对不是,因为范围问题。此外,如果打算像这样使用它,otherFunc
可以返回boolean
并放在if语句中以结束while循环或方法。
然而,我找不到任何证据表明它不会有这种行为。
这可能吗?
虽然我是用Java编写的,但是知道C语言是否也适用也是有帮助的。
答案 0 :(得分:1)
如果可以更改代码,请执行以下操作:
public static void repeat()
{
while (otherFunc()) ;
}
public static boolean otherFunc()
{
if (something){
return true;
}
//more stuff...
return false;
}
答案 1 :(得分:0)
在C语言中,您可以使用longjmp和setjmp函数,但这有点棘手。更多阅读维基百科http://en.wikipedia.org/wiki/Setjmp.h