我真的无法弄清楚为什么我的代码导致了这个错误,一切看起来都是正确的,认为它不断出现,因为它缺少一个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");
}
}
}
答案 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!");
}