缺少返回声明制作三角形程序

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还是in else

  • 一个没有关于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"; } }