如果代码的一部分,我在其他方面有问题。第一个“ if”工作正常,第三个(else)工作正常,但是我对代码的“ else if”部分有问题,程序无法执行此语句。
if ((a+c)>=(b+d)) {
if ((a==b) && (b==c) && (c==d)) {
System.out.println("square");
} else if ( (a!=b) && (c!=d) && ( a== c) && (b == d) ) {
System.out.println("rectangle");
} else {
System.out.println("four different sides");
}
} else
System.out.println("ERROR");
因此,当我输入值a = c和b = d时,我得到的是“错误”而不是“矩形”。
我做错了什么?
谢谢!
答案 0 :(得分:0)
您的顶部条件是:'if((a + c)> =(b + d))'。 也许您输入的是a = c和b = d,但可能不符合此条件'(((a + c)> =(b + d))',这是第一个条件。因此,它将进入其他部分首先if语句。 有关更多详细信息,请分享您输入的值,也许我可以再详细说明一下。
答案 1 :(得分:0)
如果输入值a = c和b = d,则还必须检查a或c值是否大于b和d。 在您的情况下,a和c的值小于b和d,因此如果语句不满足条件,则首先使用。
您可以尝试一下以了解情况。
public static void main(String[] args) {
int a = 4,b =2 ,c =4 ,d =2;
if ((a+c)>=(b+d))
{
if ((a==b) && (b==c) && (c==d))
{
System.out.println("square");
}
else if ( (a!=b) && (c!=d) && ( a== c) && (b == d) )
{
System.out.println("rectangle");
}
else
{
System.out.println("four different sides");
}
}
else{
System.out.println("ERROR");
}
}
答案 2 :(得分:0)
只需将您的代码修改为此:
if ((a + c) >= (b + d)) {
if ((a == b) && (b == c) && (c == d)) {
System.out.println("square");
} else if ((a != b) && (c != d) && (a == c) && (b == d)) {
System.out.println("rectangle");
} else {
System.out.println("four different sides");
}
} else if ((a != b) && (c != d) && (a == c) && (b == d)) {
System.out.println("rectangle");
} else if (a != b && b != c && c != d && a != c) {
System.out.println("four different sides");
} else
System.out.println("ERROR");
完成工作:)
答案 3 :(得分:0)
如果((a + c)> =(b + d))对于矩形条件不正确,则您的第一个条件是因为 对于矩形,两个相对的边都相等。如果将(a + c)相加,则看起来两个小边的值永远不会等于两个大边(b + d)的值。类似地,如果将a,c更改为大边和b, d,因为矩形条件的小边与以前相同。因此您可以像下面这样更改
正方形的样本输入 int a = 2,b = 2,c = 2,d = 2;
矩形的样本输入 int a = 2,b = 4,c = 2,d = 4;
样本输入 a = 10,b = 4,c = 6,d = 9
if ((a==c)||(b==d))
{
if ((a==b) && (b==c) && (c==d))
{
System.out.println("square");
}
else if ( (a!=b) && (c!=d) && ( a== c) && (b == d))
{
System.out.println("rectangle");
}
else
{
System.out.println("Two sides are similar but not square or rectangle");
}
} else
System.out.println("Foure side are different");
答案 4 :(得分:0)
您可以尝试使用此解决方案来检查所有样本输入的正方形,矩形和四个边是否不同
if(a>0 && b>0 && c>0 && d>0)
{
if ((a==c) ||(b==d))
{
if ((a==b) && (b==c) && (c==d))
{
System.out.println("square");
}
else if ( (a!=b) && (c!=d) && ( a== c) && (b == d))
{
System.out.println("rectangle");
}
else{
System.out.println("Two side are same but not square or rectangle");
}
}
else
System.out.println("four different sides");
} else
System.out.println("Error");