我的代码似乎有问题:
public static String Equilateral (int a, int b, int c){
if(a==b && b==c)
return "Equilateral";
}
当我明显有回报时,它会说“缺少退货声明”。有人可以帮忙吗?非常感谢你。
答案 0 :(得分:4)
它说因为如果条件语句的计算结果为false
,那么就没有return语句,你的代码就会跳过它。
请改用此模板:
if(a==b && b==c){
return "Equilateral";
}
else{
return "Not Equilateral!";
}
你应该使用一些花括号,这将有助于理解你正在做的事情并防止像你这样的错误。
或者,如果您更喜欢单一的退货声明:
String result = "Not Equilateral";
if(a==b && b==c){
result = "Equilateral";
}
return result;
根据OP的澄清进行编辑:
如果您设置这样的代码,那么如果您的三角形不是等边的,则返回的String将为空(System.out.print()不会打印任何内容。)
String result = "";
if(a==b && b==c){
result = "Equilateral";
}
return result;
答案 1 :(得分:2)
想象一下,您的if
条件为false
返回了(a==b && b==c)
值。在那种情况下你会回报什么?还是Equilateral
?
你真正需要的是
public static String Equilateral (int a, int b, int c){
if(a==b && b==c)
return "Equilateral";
return "";
}
或采用精简格式
public static String Equilateral (int a, int b, int c){
return (a==b && b==c)? "Equilateral" : "" ;
}