java错误中缺少返回语句}
我真的不明白为什么我的代码会导致这个错误,所有的东西看起来都是正确的,尽管它一直出现,因为它缺少一个返回语句} 我试着寻找解决方案,我发现if之后的while是一个解决方案,但由于我需要多个数字,所以while不能使用,而必须使用what-if 有人能帮我吗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
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!");
}