一.布尔类型
需要注意的是在C 89中并没有布尔类型,只在C 99中存在.而 C 工程支持 C89 ,OC 工程支持C99
1.两种数值:
bool true (真) false(假) C 语言
BOOL YES (真) NO (假) OC语言
2.真和假的表示
C 语言 非 0 即为真 0就是假
OC语言 YES 定义为1 NO 定义为0
3.作用.
主要用于分支语句和循环语句的判断
举例
BOOL a1 = YES;
BOOL a2 = NO;
printf("a1=%d",a1);
printf("a2=%d",a2);
BOOL a3 = YES;
BOOL a4 = NO;
printf("%d %d",a3,a4);
二.关系运算
关系运算符
1.用于两个数的比较 ;
2.关系运算符的运算结果 : 真\假.使用BOOL 类型变量来接受结果 ;
3.关系表达式 : 由常量,变量和关系运算符组成.
举例:
BOOL a1 = 5 > 3;//结果为YES
printf("%d",a1);
BOOL a2 = 5 < 3;//结果为NO
printf("%d",a2);
//定义两个人的年龄,然后进行比较,再自定义一个BOOl类型的变量来接收结果
int age1 = 0, age2 = 0;
scanf("%d %d",&age1,&age2);
BOOL a = age1 > age2;
printf("%d",a);
//定义三个变量,然后将三个变量进行比较,定义一个BOOL类型的变量来接收结果
int a1 = 0,a2 = 1, a3 = 2;
BOOL a4 = a1 > a2 >a3;
printf("%d",a4);
// 大于等于,小于等于
BOOL r1 = 5 >= 5;//结果为假
printf("%d",r1);
BOOL r2 = 6 <= 1;
printf("%d",r2);
// 等于== 不等于!=
BOOL r3 = 7 == 8;
BOOL r4 = 29 != 29;
printf("%d %d",r3,r4);
// 注意:==(双等号判断左右两边值是否相等),左右两边可以是常量或变量
//=(单等号是将右边的值付给左边的变量)左侧一定是变量
三.逻辑运算符
逻辑运算符:
1.逻辑与 逻辑或 逻辑非
2.逻辑运算的结果有两种 – 真\假.通常用BOOL变量来接收.
3.逻辑表达式:由常量,变量和逻辑运算符组成.
*逻辑与 &&
形式:表达式1 && 表达式2
运算规则:
(1)先执行表达式1,后执行表达式2.
(2)表达式1和表达式2结果同为真,才为真,一假即假.
(3)短路现象:表达式1的结果为假就不执行表达式2.
举例
//先定义两个变量,然后将两个变量进行比较,并使用逻辑与进行判断.用BOOL类型变量来接受
int a = 10,b = 20;
BOOL r1 = (a3);
printf("%d",r1);
*逻辑或 ||
形式:表达式1 || 表达式2
运算规则
(1)先执行表达式1,后执行表达式2
(2)表达式1和表达式2的结果同为假,才为假,一真即真.
(3)短路现象:表达式1若为真,就不执行表达式2.
举例
int a = 10,b = 20;
BOOL r1 = (a3);
printf("%d",r1);
BOOL r2 = (a==3) || (b>a);
BOOL r3 = (a>3) || (b>a);
printf("%d %d",r2,r3);
//短路现象
BOOL r4 = (a<5) || (a++);
BOOL r5 = (a>5) || (a++);
*逻辑非 !
(1)取反运算.
(2)运算规则:对真假取反
BOOL a = YES;
BOOL b = !a;
printf("a=%d b=%d",a,b);
BOOL c = NO,d = !c;
printf("c=%d d=%d",c,d);
最后注意内容
运算符的优先级
算数运算符 > 关系运算符 > 逻辑运算符 >赋值运算符
举例
int a = 3,b = 4, c =5;
BOOL r1 = a + b > c && b == c;
BOOL r2 = a || (b + c && b - c);//b-c不为0极为真
printf("%d %d\n",r1,r2);