2013-12-20 123 views
-4

我實在想不通,爲什麼我的代碼導致此錯誤,一切看起來是正確的,認爲它不斷來了,因爲它缺少return語句}缺少return語句}在Java錯誤

我試圖尋找解決方案,我看到「同時」後「如果」是一種解決方案,但因爲我需要多個數字我不能使用,而且必須與「假如」去

任何人都可以幫我嗎?

import java.util.*; 

class WS8Q4 
{ 
    public static void main (String[] args) 
    { 
     Scanner in = new Scanner(System.in); 

     int x = 0; 

     System.out.println("Please put in an integer from 0 - 9"); 
     x = in.nextInt(); 

     String answer = numTxt (x); 
     System.out.println(answer); 
} 

public static String numTxt (int x) 
    { 
     if (x==0) 
     { 
      return ("Zero"); 
     } 
     else if (x==1) 
     { 
      return ("One"); 
     } 
     else if (x==2) 
     { 
      return ("Two"); 
     } 
     else if (x==3) 
     { 
      return ("Three"); 
     } 
     else if (x==4) 
     { 
      return ("Four"); 
     } 
     else if (x==5) 
     { 
      return ("Five"); 
     } 
     else if (x==6) 
     { 
      return ("Six"); 
     } 
     else if (x==7) 
     { 
      return ("Seven"); 
     } 
     else if (x==8) 
     { 
      return ("Eight"); 
     } 
     else if (x==9) 
     { 
      return ("Nine"); 
     } 
    } 
} 
+3

嘗試使用'switch'模塊。 –

+0

你必須返回一個值。如果'x == 10'返回什麼? –

回答

5

什麼如果x是0-9之外的東西?您沒有該案件的退貨聲明。它添加在底部,你最後else if如下:

return "Other"; 
+0

我的天哪修好了,謝謝!甚至沒有注意到,99%的人確信我的代碼已經是正確的,但我猜計算機從不騙人! – user3062391

1

您需要有一個默認的return語句。

如果沒有條件滿足怎麼辦?最後添加一個else。

else{ 
    return "not found"; 
} 

而且你應該寫

return "Zero"; 

有沒有必要寫return ("Zero");

而且你的情況是完全適合用於開關的情況下,如果你使用的是> 1.6

0

你需要public static String numTxt()方法的結束返回,否則,會發生什麼,如果沒有你的if塊的滿足?

0

使用return語句添加else。如果x不是0-9,那麼它不會觸發任何返回語句。這是造成這個問題的原因。

0

在函數結尾沒有return聲明。您所有的return報表都在if分支內;編譯器無法確定它們中的任何一個會被擊中。您最後需要一個return,或者一個else分支。

0

您應該照顧所有情況,即:您在if-else鏈中描述的所有其他情況。要修復它,我會拋出一個異常,表明這個數字是不可能的:

public static String numTxt (int x) 
{ 
    String txt[] = {"Zero", "One", "Two", "Three", "Four", "Five", "Six", 
        "Seven", "Eight", "Nine"}; 
    if (0 <= x && x <= 9) return txt[x]; 
    throw new IllegalArgumentException("Unsupported digit!"); 
}