2015-12-16 89 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.