1

抱歉,如果这是一个原始话题,我有一位不会说英语的教授,我很迷茫。

我正在尝试声明一个检查三角形是否等边的方法。它一直告诉我,我在 if 语句中将布尔值与 int 进行比较。side1、side2 和 side3 都是 int 类型。

public boolean is_equilateral(){
    if (side1 == side2 == side3){
        return true;
    }
    return false;
}

提前感谢您的帮助!

4

4 回答 4

6

在您的比较if (side1 == side2 == side3) 中,它将首先比较side1 == side2,产生一个布尔值。

然后它将第一个结果 ( boolean) 与最后一个元素 ( int) 进行比较,从而给出错误。您无法将 aboolean与 a 进行比较int

于 2013-10-10T21:37:06.687 回答
4

该表达式的side1 == side2计算结果为布尔值,因此您无法将其与另一个 int 进行比较。但你可以这样做:

if((side1 == side2) && (side2 == side3)) {
...
}
于 2013-10-10T21:38:18.757 回答
3

利用

side1 == side2 && side1 == side3

反而。

于 2013-10-10T21:36:11.660 回答
1

利用

if((side1 == side2) && (side2 == side3))

代替

如果(边 1 == 边 2 == 边 3)

于 2013-10-10T21:43:10.093 回答