【问题标题】:Missing return statement } in java error [duplicate]java错误中缺少返回语句} [重复]
【发布时间】:2014-01-09 15:50:49
【问题描述】:

我真的不知道为什么我的代码会导致这个错误,一切看起来都是正确的,认为它不断出现,因为它缺少返回语句}

我尝试寻找解决方案,我发现“if”之后的“while”是一种解决方案,但由于我需要多个数字,我不能使用 while,而必须使用“what if”

谁能帮帮我?

import java.util.*;

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

        int x = 0;

        System.out.println("Please put in an integer from 0 - 9");
        x = in.nextInt ();

        String answer = numTxt (x);
        System.out.println(answer);
}

public static String numTxt (int x)
    {
        if (x==0)
        {
            return ("Zero");
        }
        else if (x==1)
        {
            return ("One");
        }
        else if (x==2)
        {
            return ("Two");
        }
        else if (x==3)
        {
            return ("Three");
        }
        else if (x==4)
        {
            return ("Four");
        }
        else if (x==5)
        {
            return ("Five");
        }
        else if (x==6)
        {
            return ("Six");
        }
        else if (x==7)
        {
            return ("Seven");
        }
        else if (x==8)
        {
            return ("Eight");
        }
        else if (x==9)
        {
            return ("Nine");
        }
    }
} 

【问题讨论】:

  • 尝试使用switch 块。
  • 你必须返回一个值。如果x == 10,你会返回什么?

标签: java return


【解决方案1】:

你需要有一个默认的返回语句。

如果,不满足条件怎么办??在末尾添加一个 else。

else{
  return "not found";
}

你应该写

return "Zero";

不用写return ("Zero");

如果您使用 >1.6,您的机箱非常适合 switch 机箱

【讨论】:

    【解决方案2】:

    如果x 不是 0-9 怎么办?对于这种情况,您没有退货声明。将其添加到底部,最后一个 else if 下方:

    return "Other";
    

    【讨论】:

    • 天哪,修复它,谢谢!甚至没有注意到,99% 确定我的代码已经正确,但我想计算机永远不会说谎!
    【解决方案3】:

    你需要在 public static String numTxt() 方法的结尾返回,否则如果你的 if 块都不满足会发生什么?

    【讨论】:

      【解决方案4】:

      添加带有返回语句的else。如果 x 不是 0-9,那么它不会命中任何这些 return 语句。这就是导致问题的原因。

      【讨论】:

        【解决方案5】:

        函数末尾没有return 语句。您所有的return 语句都在if 分支内;编译器不能确定它们中的任何一个都会被击中。您要么在最后需要一个return,要么在else 分支内。

        【讨论】:

          【解决方案6】:

          您应该注意所有情况,即:您在 if-else 链中描述的所有其他情况。为了修复它,我会抛出一个异常,表明该数字是不可能的:

          public static String numTxt (int x)
          {
              String txt[] = {"Zero", "One", "Two", "Three", "Four", "Five", "Six",
                              "Seven", "Eight", "Nine"};
              if (0 <= x && x <= 9) return txt[x];
              throw new IllegalArgumentException("Unsupported digit!");
          }
          

          【讨论】:

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