我遇到了布尔方法的麻烦.
private boolean askYesNoQuestion(String prompt){
prompt = prompt.toLowerCase();
if(prompt.equals("yes")) return true;
if(prompt.equals("no")) return false;
else prompt = readLine("Please answer yes or no.");
}
Run Code Online (Sandbox Code Playgroud)
Eclipse说:" 该方法必须返回boolean类型的结果 ".
以下代码中的问题相同:
private boolean isPerfectSquare(int n){
for(int i = 0; i <= n; i++){
if(i*i == n) {
return true;
}
else return false;
}
Run Code Online (Sandbox Code Playgroud)
我想我已经包括return在声明中,除了它们是在if发表声明之后.
虽然你确实包含了一对return语句,但它们都发生在循环中.Java检查所有路径,并发现循环可以在不进入第一次迭代的情况下完成 - 例如,因为它n是负数.在这种情况下,if语句不会被执行,因此不会return.
您可以在循环后包含无条件返回来修复此问题.但是,看起来您的逻辑被破坏了:如果您完全进入循环,您将立即返回,而不会完成第一次迭代.看起来你打算写这个:
private boolean isPerfectSquare(int n){
for(int i = 0; i <= n; i++){
if(i*i == n) {
return true;
}
}
return false;
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
4710 次 |
| 最近记录: |