在java错误中缺少return语句}

时间:2013-12-20 18:03:31

标签: java return

我真的无法弄清楚为什么我的代码导致了这个错误,一切看起来都是正确的,认为它不断出现,因为它缺少一个return语句}

我尝试寻找解决方案,并且在“if”是一个解决方案之后我看到了“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");
        }
    }
} 

6 个答案:

答案 0 :(得分:5)

如果x除了0-9之外还有什么?您没有针对该案例的退货声明。将其添加到最后else if下面的底部:

return "Other";

答案 1 :(得分:1)

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

如果,没有条件满足怎么办?最后添加一个别人。

else{
  return "not found";
}

你应该写

return "Zero";

无需撰写return ("Zero");

如果您使用> 1.6

,那么您的情况非常适合开关案例

答案 2 :(得分:0)

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

答案 3 :(得分:0)

使用return语句添加else。如果x不是0-9,则它不会点击任何返回语句。这就是造成这个问题的原因。

答案 4 :(得分:0)

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

答案 5 :(得分:0)

您应该处理所有情况,即:您在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!");
}