------Java培训、Android培训、iOS培训、.Net培训、期待与您交流! -------
有时候,我们需要在多个条件下同时成立才能执行某段代码,你如注册,要用户名,密码,邮箱等,你把这些所 需要填写的元素写完后才能执行注册功能,否则不能执行注册功能。
逻辑运算的结果只有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;
}
结果
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为假
3.逻辑非
1>使用格式
“!条件a”
2>运算结果
就是对a进行去反,若条件a成立则结果为假即为0,若条件a不成立为真即为1,也就是真变假,假变真。
3>逻辑非的结合方向是自右向左