[英]Recursive method returning an int not compiling
目前,我正在學習Java,並且有一個任務,我應該創建一個方法,該方法一直要求用戶輸入,直到輸入兩個關鍵字之一。 然后,根據返回的int值。
public static int getCommand(){
String command = IOTools.readString("Enter Command!");
if (command.equals("exit")){
return 1;
} else if (command.equals("shift")){
return 0;
} else {
getCommand();
}
}
我遇到的問題是eclipse告訴我將返回類型更改為void或在if塊之后添加return語句。 我的遞歸方法有什么問題嗎?
您在遞歸調用中缺少return
語句
public static int getCommand(){
String command = IOTools.readString("Enter Command!");
if (command.equals("exit")){
return 1;
} else if (command.equals("shift")){
return 0;
} else {
return getCommand(); // Added return here
}
}
返回聲明在這里丟失
else {
getCommand();
}
方法的所有路徑都需要返回某些內容。
您需要在最后一種情況下添加return
類型
public static int getCommand(){
String command = IOTools.readString("Enter Command!");
if (command.equals("exit")){
return 1;
} else if (command.equals("shift")){
return 0;
} else {
return getCommand();
}
}
此函數getCommand();
調用返回的是int
值,但在else
情況下則不是,因此如果控件落在else
情況下,則盡管無法確保getCommand();
仍將執行遞歸函數調用getCommand();
由於else
情況,將返回int
值,因此編譯器將檢測到錯誤,並根據這種情況return
類型不為void
,java說
函數中的每個執行路徑都必須導致RETURN語句
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.