java:14:错误:缺少返回语句}

java:14:错误:缺少返回语句},java,return,Java,Return,我已经学习Java两周了,我一直在做这个练习。这可能是一个非常简单的问题,但我还没有找到问题所在。我正在尝试测试我在这个算法中编写的第一个方法: 1 import java.util.*; 2 public class stationnement { 3 public static void main (String[] args) { 4 int j = jour(); 5 Syst

我已经学习Java两周了,我一直在做这个练习。这可能是一个非常简单的问题,但我还没有找到问题所在。我正在尝试测试我在这个算法中编写的第一个方法:

 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 }       
当我编译代码时,我得到stationment.java:12:error:missing return语句 }, 即使我在条件后面加上了返回x。我尝试删除if条件,结果成功了。但我想知道这里有什么问题。把条件放在那里不正确吗

非常感谢您的帮助:

您的方法公共静态国际期刊。。。。。。需要返回语句

如果x>0&&x返回if部分的值,那么您提供的返回语句位于if块内,这意味着如果条件为false,将不会执行或到达返回语句。
您必须在if语句之外提供一个返回语句,即使条件为false,也将使用该语句。函数必须返回某些内容,因为它不是无效的。但在这种情况下,如果条件不满足,则不会返回。您必须使用“else”块并返回0。

Hi Juanloz。。。在发布到堆栈溢出之前,请确保检查是否存在类似问题。您必须始终返回一个值,或者抛出一个错误,有时您无法返回值。我使用else返回0完成了此操作;它成功了。下次,在问愚蠢的问题之前,我会多读一些。谢谢春天!
 if (x > 0 && x <=31){return x;}
else{return 0;// I am returning 0 when if condtion fails}