下面是一些代码来检查值的范围内短路评估一种语言漏洞?
if((i <= n) && ((i+m) >= n){
//do something.....
};
这基本上是一个布尔和条件,如果两个操作数为真,则符合条件的结果是真介于英寸 但是,对于短路评估,C++只能测试第一个条件是否为真,如果是,则不检查第二个条件是否为真。 在适当的数学意义上,这是一个布尔测试?这完全deranges我的代码的逻辑,而是我不得不写这样的:
if((i <= n){
if((i+m) >= n){
//do something......
}
}
什么是短路评价的意义,以及如何才能让C++做一个适当的布尔测试,而无需使用嵌套if条件。
如果是星期二,并且她正在拜访她的父母,那么你就会欺骗你的妻子。你每个星期二都在欺骗她吗? –
有人需要审查他们的[德摩根法律](https://en.wikipedia.org/wiki/De_Morgan%27s_laws) – CoryKramer
你有第二种情况的错字 - 应该是我+ m – cup