Java类缺少返回语句

Java类缺少返回语句,java,class,methods,return-type,Java,Class,Methods,Return Type,我的代码似乎有问题: public static String Equilateral (int a, int b, int c){ if(a==b && b==c) return "Equilateral"; } 当我有明确的回报时,上面写着“缺少回报声明”。有人能帮忙吗?非常感谢。它说,因为如果您的条件语句的计算结果为false,那么将没有返回语句,您的代码将跳过它 请改用此模板: if(a==b && b==c){ ret

我的代码似乎有问题:

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

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


} 

当我有明确的回报时,上面写着“缺少回报声明”。有人能帮忙吗?非常感谢。

它说,因为如果您的条件语句的计算结果为
false
,那么将没有返回语句,您的代码将跳过它

请改用此模板:

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的澄清:

如果您这样设置代码,那么如果三角形不是等边的,则返回的字符串将为空(System.out.print()不会打印任何内容)


它说,因为如果您的条件语句的计算结果为
false
,那么就不会有返回语句,您的代码只会跳过它

请改用此模板:

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的澄清:

如果您这样设置代码,那么如果三角形不是等边的,则返回的字符串将为空(System.out.print()不会打印任何内容)


假设您的
条件为
(a==b&&b==c)
返回了一个
false
值。如果是那样的话,你会退回什么?仍然是等边的

你真正需要的是

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

} 

假设您的
条件为
(a==b&&b==c)
返回了一个
false
值。如果是那样的话,你会退回什么?仍然是等边的

你真正需要的是

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

} 


最好在方法中创建一个
String
变量,在
if
else
块中为其赋值,并返回变量,而不是使用多个返回语句。感谢您的建议,我将添加它。@Trobbins我希望我的代码跳过它,程序应显示三角形的性质。因此,如果它不是等边的,它将跳过它到下一个方法,依此类推。在满足条件之前,输出将是triangle@jungkookie我假设你有多种方法,
等边()
等腰()
右()
?如果是这样的话,那么您应该让该方法返回布尔值而不是字符串,或者只使用一个方法返回三角形的状态。告诉我你在尝试哪种方法,我将对我的答案进行编辑。@Trobbins是的,我有多个方法,我在main方法中调用它们。因此,我的输出将是三角形本身的性质。这意味着这些方法需要返回一个字符串,即三角形的性质。非常感谢:)在方法中创建一个
String
变量是个好主意,在
if
else
块中为它赋值,然后返回变量,而不是有多个返回语句。谢谢你的建议,我将添加它。@Trobbins我希望我的代码跳过它,程序应显示三角形的性质。因此,如果它不是等边的,它将跳过它到下一个方法,依此类推。在满足条件之前,输出将是triangle@jungkookie我假设你有多种方法,
等边()
等腰()
右()
?如果是这样的话,那么您应该让该方法返回布尔值而不是字符串,或者只使用一个方法返回三角形的状态。告诉我你在尝试哪种方法,我将对我的答案进行编辑。@Trobbins是的,我有多个方法,我在main方法中调用它们。因此,我的输出将是三角形本身的性质。这意味着这些方法需要返回一个字符串,即三角形的性质。非常感谢:)如果<代码>条件我尝试添加“else return null”,但是,当我运行程序时,它不会显示任何输出如果<代码>条件我尝试添加“else return null”,则没有与<代码>条件负匹配的返回语句,但是,当我运行程序时,它不显示输出。我怀疑他是否理解三元运算符的用法。:)@Trobbins我只是提供了替代解决方案。这是学习新的和不同的做事方式的地方谢谢你的评论tho@Trobbins三元IIRC.@M.Shaw你说得对,谢谢。一切都很好。我们是来互相帮助的。我怀疑他会理解三元运算符的用法。:)@Trobbins我只是提供了替代解决方案。这是学习新的和不同的做事方式的地方谢谢你的评论tho@Trobbins三元IIRC.@M.Shaw你说得对,谢谢。一切都很好。我们是来互相帮助的。