函数能否结束其调用者的功能?

时间:2014-09-16 19:31:47

标签: java c scope

假设我们有以下两种方法:

public static void repeat(){
    while (1){
        otherFunc();
    }
}

public static void otherFunc(){
    if (something){
        //Here
    }
}

是否有办法在//Here的位置导致break函数中的returnrepeat

最初,我认为绝对不是,因为范围问题。此外,如果打算像这样使用它,otherFunc可以返回boolean并放在if语句中以结束while循环或方法。

然而,我找不到任何证据表明它不会有这种行为。

这可能吗?

虽然我是用Java编写的,但是知道C语言是否也适用也是有帮助的。

2 个答案:

答案 0 :(得分:1)

如果可以更改代码,请执行以下操作:

public static void repeat()
{
    while (otherFunc()) ;
}

public static boolean otherFunc()
{
    if (something){
         return true;
    }
    //more stuff...
    return false;
}

答案 1 :(得分:0)

在C语言中,您可以使用longjmpsetjmp函数,但这有点棘手。更多阅读维基百科http://en.wikipedia.org/wiki/Setjmp.h