吉林卫视新台标:问一个C语言有关逻辑表达式的问题

来源:百度文库 编辑:中科新闻网 时间:2024/04/29 06:24:56
如果有如下条件:
表达式1||表达式2&&表达式3
请问如果表达式1的值为1,是否还要和表达式3做与运算? 我的意思是说,不管表达式1或表达式2哪个成立,最后都要和表达式3做与运算,是不是这个意思?

不是,先逻辑乘(与),后逻辑加(或)。

表达式1 || 表达式2 && 表达式3

&& 是逻辑与,就是逻辑乘, 逻辑乘先做
(先做 表达式2 && 表达式3)
再做逻辑或,逻辑或, 就是逻辑加。

例如:
if ( (1 > 2) || (2 > 1) && (1 > 3) ) {
printf(" abcd\n");
}
逻辑乘先做,得假
(1 > 2)也假,结果是假, 不打印。

非也,根据先根据运算符的优先顺序计算.还有就是在条件表达式中存在运算"短路"问题.运算符||与运算符&&
不同,&&>||.
对于此问题,先运算2与3的"&&".若为1则,整个为"真",若为0,则还需判断1的值,才能确定整个表达式的值.

如果是
表达式1||表达式2||表达式3
此时
表达式1为真
则就不需要做下面的操作了

运算符||与运算符&&处于同一运算级别,且都是从左往右运算,当表达式1为真时,整个式子的值就为真了,不会再向右运算了.

建议你学学离散数学```````````

运算符||与运算符&&处于同一运算级别,且都是从左往右运算,当表达式1为真时,整个式子的值就为真了,不会再向右运算了.