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
我正在制作一个确定三角形的程序。这是我在编译时遇到错误的地方。它最后给出了一个遗漏的退货声明。怎么解决这个问题?
答案 0 :(得分:0)
原因是,所有条件都无法执行会发生什么?
可能的解决方案:
你需要在那里提供一个else块。当你提供else时
阻止,然后确定总是有机会返回
价值,可以在if
或else
。
没有关于if-else
的默认返回语句,其中
返回值应以块为单位决定。
答案 1 :(得分:0)
由于最终逻辑(在您的情况下)始终为真,因此您不需要最终else if
简单
return ("Scalene Triangle.");
但如果下面的内容如果为假,会发生什么?
if(( side1+side2 > side3))
你需要归还一些东西。
答案 2 :(得分:0)
编译器说你必须返回一些东西,因为如果你的所有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
答案 3 :(得分:0)
试试这个
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";
}
}