2014-04-22 446 views
-1
import java.util.Scanner; 

public class Main { 

public static String doStuff(int num){ 
    //your code here 
    for(int i = 1; i < 5; i++){ 
     if(i == num){ 
      String str = String.valueOf(i); 
      return str; 
     } 
     else if(i > 4){ 
      return "too large"; 

     } 
     else if(i < 1){ 
      return "too small"; 
     } 
    } 

} 

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

    int n = in.nextInt(); 
    for(int i=0; i<n; i++){ 
     int a = in.nextInt(); 
     System.out.println(doStuff(a)); 
    } 
} 

}缺少return語句錯誤

當我運行這段代碼,我得到以下錯誤:

Main.java:21: error: missing return statement 
} 
^ 
1 error 

我應該怎麼做才能解決這個問題?

請參閱以下條件: 給定一個從1到4(包含)的數字,返回數字的單詞表示。例如,給出2,返回兩個。如果數字大於4,則返回太大的詞組。如果該數字小於1,則返回太短的短語。

+1

編譯器抱怨說你的if塊可能無法覆蓋所有的可能性。你需要添加一個最後的'else'塊或者在方法的末尾有一個默認的返回值。 –

+0

哪條線是21號線? – Raedwald

+0

非常感謝。 否則如果(i <1){0}返回「太小」; } }←幾乎在這裏 – Bill

回答

4

doStuff()方法中的所有返回語句都是條件返回語句(存在於if-elsefor循環中)。您需要在方法的末尾有一個默認的return,以便在沒有執行任何條件塊的情況下該方法返回一些內容。

public static String doStuff(int num){ 
    //your code here 
    for(int i = 1; i < 5; i++){ 
     if(i == num){ 
      String str = String.valueOf(i); 
      return str; 
     } 
     else if(i > 4){ 
      return "too large"; 

     } 
     else if(i < 1){ 
      return "too small"; 
     } 
    } 
    return null; // default return in case none of the if-else blocks are executed. 
} 
0

您正在返回for循環內的值。你應該返回一些默認值。

public static String doStuff(int num){ 
    //your code here 
    for(int i = 1; i < 5; i++){ 
     if(i == num){ 
      String str = String.valueOf(i); 
      return str; 
     } 
     else if(i > 4){ 
      return "too large"; 

     } 
     else if(i < 1){ 
      return "too small"; 
     } 
    } 
    return "default"; 
}