[英]what is wrong with this if-statement
我绝对不知道if语句有什么问题,当我发送值lon = -3和lat = 7时,它应该返回false,但不会。
if (b < 0 && ((lon > 8 && lon < 0) || (lat > 8 && lat < 0)))
{
return false;
}
else
{
return true ;
}
分解每个值...
int lon = -3;
int lat = 7;
if (b < 0 && // i don't know b value
((-3 > 8 && //false
-3 < 0) //true
|| (7 > 8 && //false
7 < 0 //false
)))
{
return false;
}
else
{
return true ;
}
结果为int lon = -3; 整数= 7;
if (b < 0 && // i don't know b value
(false || false))
{
return false;
}
else
{
return true ;
}
最后是:
if (false)
{
return false;
}
else
{
return true ;
}
然后返回true!
尽管此if
语句在逻辑上存在缺陷,但也许这里仍有一些要学习的地方。 除了评估if
语句然后返回true
或false
,您还可以对其进行清理,然后执行以下操作:
return b < 0 && ((lon > 8 && lon < 0) || (lat > 8 && lat < 0))
但是回到逻辑错误,也许是您对不等式运算符如何工作的理解。 如果您执行了lon > 0 && lon < 8
这样的操作,它将读为经度大于零且小于八,那将更有意义。
如果我正确阅读了您的陈述,您将永远不会出错。 要获得假lon,我必须小于零且大于8 ...这是不可能的。 与lat相同。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.