短路求值

目录导航

定义

作为"&&"和"||"操作符的 操作数 表达式,这些表达式在进行求值时,只要最终的结果已经可以确定是真或假,求值过程便告终止,这称之为 短路求值(short-circuit evaluation)。这是这两个操作符的一个重要属性。

例子

假如expr1和expr2都是表达式,并且expr1的值为0,在下面这个逻辑表达式的求值过程中:

expr1 && expr2

expr2将不会进行求值,因为整个逻辑表达式的值已经可以确定为0。

类似地,如果expr1的值不是0,那么在下面的这个 逻辑表达式的求值过程中:

expr1 || expr2

expr2将不会进行求值,因为整个逻辑表达式的值已经确定为1。

下面是一个简单的可能会出现短路求值的例子。假如我们需要处理的字符数量不超过5个。

int cnt =0;

while (++cnt<=5&&(c=getchar())!=EOF)

{

...

}

当 表达式++cnt<=5的值是假时,下一个字符就不会被读取。

相关百科
返回顶部
产品求购 求购