【和春笋一起学C++】逻辑操作符和条件操作符
目录
逻辑操作符
条件操作符(? :)
逻辑操作符
逻辑操作符包含与(&&)、或(||)、非(!),这三者计算的优先级为:
非(!)>与(&&)>或(||)
另外,和关系操作符,算法操作符相比,逻辑非得优先级要高于关系操作符和算术操作符,而逻辑与(&&)和逻辑或(||)的优先级要低于关系操作符。因此,对表达式求反时必须用括号将表达括起。
C++确保程序从左向右进行计算逻辑表达式,并在知道答案后立即停止。如以下表达式:
if (x != 0 && (1 / x > 100))
{
x = 1;
}
当x等于0时,1/x是非法的,但因为此时x!=0已经为false,程序不会继续向右计算表达式(1/x >100)的值,所以这段代码在运行时不会报错。
条件操作符(? :)
条件操作符可以用来替代简单的if else语句。
条件操作符是C++中唯一一个需要3个操作数的操作符。其完整表达式格式如下:
expression1 ? expression2 : expression3
如果expression1为true,则整个表达式的值为expression2的值,否则整个表达式的值为expression3的值。
条件操作符比较适合用于关系简单的情形,比如取x和y中较大的值:
int x = 5;
int y = 7;
int z = x > y ? x : y;
当关系比较复杂时,为了便于理解和阅读代码,一般使用if else语句。