这个逻辑的表达中学数学是有过涉猎的,就是“与或非”的关系。
逻辑运算符及其优先顺序
有三种逻辑运算符:
与(AND)
或(OR)
非(NOT)
我们所学的C语言用法符号来代替这些逻辑运算符。
这里面的运算符就跟真假命题一样,
在“与”的条件下,只有两个命题全为真,结果才为真;
而“或”的条件下,只要两个命题中有一个为真,结果就为真。
“非”的条件更为简单,假命题经过“非”之后变为真命题,真命题经过“非”变为假命题。
“&&”和“||”是双目(双元)运算符,它要求有两个运算对象(操作数)
“!”是单目运算符,只要求有一个运算对象。
下面是一个真值表,理解之后就不需要看。
优先顺序:
1.!(非)——》&&(与)——》||(或)
即“!”为三者中最高的
2.逻辑运算符中的“&&”和“||”低于关系运算符,
“!”高于算术运算符。
逻辑表达式
C语言编译系统在表示逻辑运算结果时,用数值1代表“真”,用0代表“假”,
但在判断一个量是否为“真”时,
以0代表“假”,以非0代表“真”。
即将一个非零的数值认为真。
就比如下面的例子:
我们是可以直接用编译器来看结果的:
逻辑运算符两侧的对象不仅可以是0和1,或者是0和非0的整数,
也可以是字符型、浮点型、枚举型或之振兴的纯量型数据。
系统最终以0和非0来判定他们属于“真”或“假”。
下面还有一个表,这个熟悉一下就行:
在逻辑表达式的求解中,
并不是所有的逻辑运算符都被执行,
只是在必须执行下一个逻辑运算符才能求出表达式的解时,才执行该运算符。
例如:
1.a && b && c
只有a为真(非零)时,才需要判别b的值,
只有当a和b都为真的情况下才需要判别c的值。
如果a为假,直接可以看出表达式的值为0
2. a | | b | | c
只要a为真(非零),就不必判断b和c,结果为1
只有a为假,才需要判别b和c。
在逻辑运算值得出的结果就可以运用到if语句,
if语句只需要知道结果是0还是1就可以进行运算了。
本篇内容到此结束