Java类缺少返回语句

时间:2015-04-23 15:58:46

标签: java class methods return-type

我的代码似乎有问题:

 public static String Equilateral (int a, int b, int c){

    if(a==b && b==c)
    return "Equilateral";


} 

当我明显有回报时,它会说“缺少退货声明”。有人可以帮忙吗?非常感谢你。

2 个答案:

答案 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" : "" ;

}