&& 与 || 引发的bug

今天遇到了一个bug

  使用不等式运算符 和 逻辑运算符 连接起来了一系列语句,结果只有第一条语句执行了

if(Fun("param1")!=1 && Fun("param2")!=1 && Fun("param3")!=1)
{
    cout << "所有Fun都返回0" << endl;
} 

  如上,如果第一个Fun 返回1 那么其他Fun都不会被调用,只有第一个Fun执行了。因为&& 逻辑判断是如果有一个为false了,后面的语句就不执行了,所以后面并没有调用。

类似
if(Fun("param1")!=0 || Fun("param2")!=0 || Fun("param3")!=0)
{
    cout << "所有Fun都返回0" << endl;
} 

  如上上面这个类似,||判断只要有一个语句为true,后面的都不会执行,所以需要注意

猜你喜欢

转载自blog.csdn.net/sdoyuxuan/article/details/82458906