2015-12-16 86 views
-3

我已經學習了兩週的Java,並且在此練習中被卡住了。這可能是一個非常簡單的問題,但我還找不到問題。我想測試我寫這個algorithme第一種方法:java:14:錯誤:缺少return語句}

1 import java.util.*; 
2 public class stationnement { 
3     public static void main (String[] args) { 
4     int j = jour(); 
5     System.out.println(j); 
6   } 
7   public static int jour() { 
8     Scanner sc = new Scanner(System.in); 
9     System.out.println("Rentrez le jour"); 
10     int x = sc.nextInt(); 
11     if (x > 0 && x <=31){return x;} 
12   }  
13   
14 }  

當我編譯我的代碼,我得到stationnement.java:12:錯誤:缺少return語句 }, 即使條件之後,我把返回x。我試圖刪除if條件,它的工作。但我想知道這裏有什麼問題。在那裏放置病情是不正確的?

非常感謝您的幫助:)

+1

嗨Juanloz ...請確保在發佈到Stack Overflow之前檢查類似的問題。 – sherb

+0

你必須總是返回一個值,(或者拋出一個錯誤)有時你不能返回一個值。 –

回答

0

你的方法public static int jour() ......預計return語句

你是在if部分返回值if (x > 0 && x <=31){return x;}

你也應該返回一個值時if條件失敗

更改您的代碼,如下所示

if (x > 0 && x <=31){return x;} 
else{return 0;// I am returning 0 when if condtion fails} 
+0

我完成了一個else返回0;它的工作。下一次,我會在提出愚蠢的問題之前閱讀更多內容。謝謝春天! – Juanloz

0

您提供的return語句是if塊,這意味着將不能被執行或達到,如果條件爲假return語句裏面。 您必須在if語句之外提供返回語句,即使條件爲false,也會使用該語句。該函數必須返回某些內容,因爲它不是void。但在這種情況下,如果條件不滿足,則不會。必須使用'else'塊並返回0.