短路求值(short-circuit evaluation):逻辑与和逻辑或操作符总是先计算其左操作数,然后再计算其右操作数。
#include<iostream>
using namespace std;
int main()
{
int a=2,b=3,c=4,d=5;
int m=2,n=2;
(m=a<b) || (n=c>d);
cout<<"m="<<m<<" n="<<n<<endl;
return 0;
//输出 m=1 n=2;
}
当左操作数可以确定该逻辑运算符的结果时,则会跳过右操作数。
{
//求1+2+...+n的值
int sum(int n){
int result=n;
result && result+=sum(n-1);
return result;
}
优点
1、提高程序的运行效率:
2、防止出现难以预料的后果;
3、代码的逻辑更为紧密。