逻辑运算 有时候,我们需要在多个条件下同时成立才能执行某段代码,你如注册,要用户名,密码,邮箱等,你把这些所需要填写的元素写完后才能执行注册功能,否则不能执行注册功能。 逻辑运算的结果只有2个:“真”为1,“假“为0。 1。&&逻辑与 1>使用格式 “条件a&&条件b” 2>运算结果 只有当条件a和条件b同时成立时,结果才为真,否则结果为假 3>运算过程 总是先判断条件a是否成立 如果条件a成立,接着在判断条件b是否成立如果条件b成立“条件a&&条件b”的结果就为1,即“真”,如果条件b不成立,结果就为0即“假”。 如果条件a不成立,就不会再去判断条件b是否成立,因为条件a已经不成立了, 不管条件b如何“条件a&&条件b”的结果肯定是0也就是假。 如 #include <stdio.h> int main() { int a,b,c,d,e,f; a=10; b=10; d=10; e=10; c=(a>5)&&(++b>=11); f=(d<5)&&(++e>=11); printf(" a%d\n b%d\n c%d\n d%d\n e%d\n f%d\n",a,b,c,d,e,f); return 0; } 结果 file:///C:\Users\ADMINI~1\AppData\Local\Temp\ksohtml\wps17E7.tmp.png 4>注意 若想判读a的值是否在(2,10)的范围内,不能写成2<a<10,因为关系运算符的结合方向为“从左到有”,比如a=1,他会先算2<1;条件不成立结果为0,在与10比较 即0<10,条件成立,结果为1,因此2<a<10成立。也就是说a=1结果是在(2,10) 之间,但是我们知道这是错误的,因此应该写成(a>2)&&(a<10); C语言规定,任何非0的值都为“真“,只有0才为假“”因此他也试用于数值比如 2&&10结果是真2&&0结果是假 2逻辑或 1>使用格式 “条件a||条件b” 2>运算结果 只有当条件a和条件b只要有1个成立时,结果才为真,否则结果为假 3>运算过程 总是先判断条件a是否成立 如果条件a成立,就不会再去判断条件b是否成立,因为条件a已经成立了,不管条件b如何“条件a||条件b”的结果肯定是1也就是真。 如果条件a不成立,接着在判断条件b是否成立如果条件b成立“条件a||条件b”的结果就为1,即“真”,如果条件b不成立,结果就为0即“假”。 #include <stdio.h> int main() { int a,b,c,d,e,f; a=10; b=10; d=10; e=10; c=(a>5)||(++b>=11); f=(d<5)||(++e>=11); printf(" a%d\n b%d\n c%d\n d%d\n e%d\n f%d\n",a,b,c,d,e,f); return 0; } 结果 4>注意 C语言规定,任何非0的值都为“真“,只有0才为假“因此他也试用于数值比如 2||10结果是真2||0结果是真,0||0为假 逻辑非 1>使用格式 “!条件a” 2>运算结果 就是对a进行去反,若条件a成立则结果为假即为0,若条件a不成立为真即为1,也就是真变假,假变真。 3>逻辑非的结合方向是自右向左
|