我是 Java 新手,我正在學習帶有 return 語句的方法。我的 IDE 說:此方法必須返回布爾類型的結果但是我的方法只返回布爾值。如何解決?public class Test {public static void main(String[] aargs) { debug(4, 5);}public static boolean debug(int a, int b) { if(a+b == 12) { return true; }else if(a+b == 18){ return false; } a = 8;}}
3 回答

瀟瀟雨雨
TA貢獻1833條經驗 獲得超4個贊
這是java的設計模式。我們不能在 return 語句之后寫任何代碼。如果您嘗試使用此代碼進行編譯,則編譯將失敗。拋出異常也是一樣。
這是因為在返回或拋出異常語句后,控制將轉到調用者位置。所以這些行不能被執行。
在您的情況下,您必須返回一些布爾值。
代碼應該是這樣的
public static boolean debug(int a, int b) {
boolean flag = false;
if(a+b == 12) {
flag = true;
}else if(a+b == 18){
flag = false;
}
a = 8;
return flag;
}

白衣非少年
TA貢獻1155條經驗 獲得超0個贊
退貨后您沒有任何代碼。警告說你錯過了回報
注意:不建議更改您的參數a = 8;
,但如果您的 if 語句均未輸入,則必須返回某些內容。在這種情況下,在該行之后為真或假
您可能還想捕獲以下結果 debug(4, 5);

慕村225694
TA貢獻1880條經驗 獲得超4個贊
編譯器試圖(以它自己的方式)告訴您else
case ( a+b != 12 && a+b != 18
) 正在執行,a=8
并且該代碼分支缺少return
語句。
Java 編譯器在程序流分析方面非常聰明,所以當它告訴某些地方有問題時,說明確實有問題。
添加回答
舉報
0/150
提交
取消