A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© lwylwc 中级黑马   /  2015-8-3 23:04  /  427 人查看  /  0 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

逻辑运算
有时候,我们需要在多个条件下同时成立才能执行某段代码,你如注册,要用户名,密码,邮箱等,你把这些所需要填写的元素写完后才能执行注册功能,否则不能执行注册功能。
逻辑运算的结果只有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的值是否在(210)的范围内,不能写成2<a<10,因为关系运算符的结合方向为“从左到有”,比如a=1,他会先算2<1;条件不成立结果为0,在与10比较
0<10,条件成立,结果为1,因此2<a<10成立。也就是说a=1结果是在(210
之间,但是我们知道这是错误的,因此应该写成(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>逻辑非的结合方向是自右向左

0 个回复

您需要登录后才可以回帖 登录 | 加入黑马