我定义了一个布尔型的方法,用来返回对于问题的回答,yes就是true,no就是false,不是标准输入就提示并重新调用自己,方法如下:
private boolean askquestion(String str){
String answer=readLine(str);
if (answer.equals("yes")){
return true;
}
else if (answer.equals("no")){
return false;
}
else {
println("Please enter yes or no.");
askquestion(str);
}
return false;
}
最后的一段红色的“return false”本来我是没加的,因为我认为就算没有这句话,整个逻辑也是完整的,可是系统一定要我加上这句话(感觉完全无用),为什么?
------最佳解决方案--------------------
println("Please enter yes or no.");
return askquestion(str);
}
------其他解决方案--------------------
8楼正解,缺少一个return关键字
------其他解决方案--------------------
该方法一定要返回一个boolean值,如果进入了else里面,它该返回什么?
------其他解决方案--------------------
肯定要加的,如果你的这个方法执行到else里面,那不是没返回值?所以最后的这个return false;是必须要加的。
------其他解决方案--------------------
逻辑不闭合吧。
最后的else没有返回值。
------其他解决方案--------------------
楼上正解,要是你不加最后那一句程序运行到最后一个else里面时不就没有返回了吗?既然定义了boolean的函数返回值,那肯定在函数每种情况里都得有一个返回值得
------其他解决方案--------------------
恩 你定义的函数必须要有返回值, 如果没有最后的return false,那么进入
else {
println("Please enter yes or no.");
askquestion(str);
之后就没有返回值了。
------其他解决方案--------------------
这不是有用没用的问题。这是必须的,你既然不是void类型,那么就肯定要有返回值。如果进入了else那么没有返回那么就和你定义的函数类型相互矛盾了。
------其他解决方案--------------------
++
因为你定义的就是一个boolean类型的方法,如果不加,必须得是void类型的
private void askquestion(String str){
}
这样就不用返回了
------其他解决方案--------------------
我的else判断里面的确没有返回值,但是它直接调用了本身,等于从头开始程序了,这个应该不用返回什么吧?
else {
println("Please enter yes or no.");
askquestion(str);
------其他解决方案--------------------
在最后的else里面返回,就可以不要红色的了