java错误中缺少返回语句}

java错误中缺少返回语句},java,return,Java,Return,我真的不明白为什么我的代码会导致这个错误,所有的东西看起来都是正确的,尽管它一直出现,因为它缺少一个返回语句} 我试着寻找解决方案,我发现if之后的while是一个解决方案,但由于我需要多个数字,所以while不能使用,而必须使用what-if 有人能帮我吗 import java.util.*; class WS8Q4 { public static void main (String[] args) { Scanner in = new Scanner(S

我真的不明白为什么我的代码会导致这个错误,所有的东西看起来都是正确的,尽管它一直出现,因为它缺少一个返回语句}

我试着寻找解决方案,我发现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");
        }
    }
} 

您需要有一个默认的return语句

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

else{
  return "not found";
}
你应该写

return "Zero";
不需要写返回零

您的机箱非常适合开关机箱,如果您使用的是>1.6

那么如果x是0-9之外的值呢?对于这种情况,您没有返回语句。如果出现以下情况,请将其添加到最后一个else下方的底部:


您需要在公共静态字符串numText方法的结尾处返回一个值,否则,如果if块都不满足,会发生什么

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

函数末尾没有return语句。所有返回语句都在if分支中;编译器无法确定它们中的任何一个是否会被命中。您需要在最末端返回,或者在else分支中返回。

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

尝试使用开关块。您必须返回一个值。如果x==10,你会返回什么?我的上帝修好了,谢谢!我甚至没有注意到,99%的人确信我的代码已经正确了,但我猜计算机从来没有撒谎!
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!");
}