缺少返回声明制作三角形程序
public String displayType(int side1, int side2,int side3) { if(( side1+side2 > side3)) if(( side1==side2) && (side2==side3))//tell if equalateral { return ("Equalateral Triangle."); } else if (( side1==side2) & (side2 != side3) || (side1 == side3) & (side3 != side1))//tells if isosceles { return ("Isosceles Triangle."); } else if ((side1 != side2) & (side2 != side3))//tells if scalene { return ("Scalene Triangle."); } } // missing return statement here error
我正在制作一个确定三角形的程序。 这是我在编译时遇到错误的地方。 它最后给出了一个遗漏的退货声明。 怎么解决这个问题?
原因是,所有条件都无法执行会发生什么?
可能的解决方案 :
-
你需要在那里提供一个else块。当你提供一个else块时,它肯定总是有机会返回值,无论是
if
还是inelse
。 -
一个没有关于
if-else
默认return语句,其中返回值应该在块中决定。
由于最终的逻辑(在你的情况下)将永远是真的,你不需要最终的else if
只是
return ("Scalene Triangle.");
但如果下面的假如果会发生什么呢?
if(( side1+side2 > side3))
你需要归还一些东西。
编译器说你必须返回一些东西,因为如果你的所有IF条件都失败了那么它会做什么?
你可以这样做:
public String displayType(int side1, int side2,int side3) { if(( side1+side2 > side3)) { if(( side1==side2) && (side2==side3))//tell if equalateral { return ("Equalateral Triangle."); } else if (( side1==side2) & (side2 != side3) || (side1 == side3) & (side3 != side1))//tells if isosceles { return ("Isosceles Triangle."); } else if ((side1 != side2) & (side2 != side3))//tells if scalene { return ("Scalene Triangle."); } return ("It is not a triangle"); } // missing return statement here error
试试这个
public String displayType(int side1, int side2,int side3) { if(( side1+side2 > side3)){ if(( side1==side2) && (side2==side3))//tell if equalateral { return "Equalateral Triangle."; } else if (( side1==side2) & (side2 != side3) || (side1 == side3) & (side3 != side1))//tells if isosceles { return "Isosceles Triangle."; } else if ((side1 != side2) & (side2 != side3))//tells if scalene { return "Scalene Triangle."; } } else{ return "Not a triangle"; } }