【问题标题】:java:14: error: missing return statement } [duplicate]java:14:错误:缺少返回语句} [重复]
【发布时间】:2015-12-16 16:20:46
【问题描述】:

我已经学习 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 }       

当我编译我的代码时,我得到 stationnement.java:12: error: missing return statement }, 即使我将 return x 放在条件之后。我尝试删除 if 条件并且它有效。但我想知道这里有什么问题。把条件放在那里不正确吗?

非常感谢您的帮助:)

【问题讨论】:

  • 嗨 Juanloz...请确保在发布到 Stack Overflow 之前检查类似问题。
  • 你必须总是返回一个值,(或抛出一个错误)你有时不能返回一个值。

标签: java return


【解决方案1】:

您的方法 public static int jour() ...... 需要返回语句

您正在返回if 部分if (x &gt; 0 &amp;&amp; x &lt;=31){return x;} 上的值

您还应该在if 条件失败时返回一个值

更改您的代码,如下所示

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

【讨论】:

  • 我用 else return 0 完成了它;它奏效了。下一次,我会在问愚蠢的问题之前阅读更多内容。谢谢春天!
【解决方案2】:

您提供的return 语句位于if 块内,这意味着如果条件为假,则不会执行或到达return 语句。 您必须在if 语句之外提供一个 return 语句,即使条件为假,该语句也会被使用。该函数必须返回一些东西,因为它不是void。但在这种情况下,如果条件不满足,它不会返回.您将不得不使用“else”块并返回 0。

【讨论】:

    猜你喜欢
    • 2014-01-09
    • 2013-03-21
    • 2016-01-04
    • 2014-09-22
    • 1970-01-01
    • 2013-09-18
    • 2021-05-27
    • 2013-10-27
    • 2020-05-28
    相关资源
    最近更新 更多