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你说得对,谢谢。一切都很好。我们是来互相帮助的。