必须在方法中指定return,但我希望方法再次调用自身而不是返回

use*_*993 1 java methods return

我写了一个方法.它正在模仿翻转硬币并试图检测"连续三个头"的案例.一旦出现连续三个头(counter = 3),该方法返回到达此点所花费的迭代次数(genCounter).

问题是eclipse说这个方法应该返回"int",但我确实返回了genCounter.(counter和genCounter都是int实例变量).正如我从浏览互联网所理解的那样,问题在于我没有在其他地方返回任何东西.但我不希望它返回任何东西,万一我想从头开始我的方法.

private int isThree(){
    String coin = rg.nextBoolean()?"Heads":"Tails";
    if (coin.equals("Heads")){
        counter += 1;
    }else{
        counter = 0;
    }
    genCounter += 1;
    if (counter == 3) {
        return genCounter;
    }else{
        isThree();
    }
}
Run Code Online (Sandbox Code Playgroud)

NPE*_*NPE 6

但我不希望它返回任何东西,万一我想从头开始我的方法.

提示:要重复某些操作,请使用循环(这也将解决您当前的问题).

你目前正在使用递归; 尽管可行,它确实会使事情变得不必要地复杂化.

  • @ user3349993用于学习目的,在Java中练习递归是没有问题的.当您开始生成生产代码时,Java不是针对递归优化的语言.它可以产生非常难看的堆栈跟踪,并为您留下难以扩展的代码.这里有关于编程递归的更多信息:http://programmers.stackexchange.com/questions/149167/are-functional-languages-better-at-recursion (2认同)