[英]if else if not outputing else if statement java
如果代码的一部分,我会遇到其他问题。 第一个“ 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时,出现“错误”而不是“矩形”。
我做错了什么?
谢谢!
您的顶部条件是:'if(((a + c)> =(b + d)))'。 也许您输入的是a = c和b = d,但可能不符合此条件'(((a + c)> =(b + d))',这是第一个条件。因此,它将进入其他部分有关更多详细信息,请共享您输入的值,也许我可以再详细说明一下。
如果要输入值a = c和b = d,则还必须检查a或c值是否大于b和d。 在您的情况下,a和c的值小于b和d,因此,如果if语句不满足条件,请首先使用。
您可以尝试此方法进行理解。
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");
}
}
只需将代码修改为:
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");
任务完成 :)
您的第一个条件if((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");
您可以尝试此解决方案,以检查所有样本输入的正方形,矩形和四个边是否不同
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");
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.