一、BOOL类型
返回值:真:YES 假:NO
定义一个布尔类型的变量
YES == 1, NO == 0
计算机在识别时,YES就替换成1,NO就替换成0
BOOL isGirl = YES;
printf("张飞是女的吗:%d\n", isGirl);
bool是C语言中提供的,BOOL是OC提供的
bool,返回值 true false
C语言中认为0为假,非0即真
计算BOOL类型的字节
unsigned 无符号类型
sizeof 输出的是无符号长整形
unsigned long size = sizeof(BOOL);
printf("size = %lu\n", size);
unsigned long intSize = sizeof(int);
printf("intSize = %lu\n", intSize);
二、关系运算符
作用:用来进行两个数比较。
关系运算符的结果有两种,真或假,用BOOL类型变量来接收
1. > <
BOOL r1 = > ; printf("r1 = %d\n", r1); BOOL r2 = < ; printf("r2 = %d\n", r2); , b = , c = ; BOOL r3 = a < b < c; 先运算a < b,再和c比较 printf("r3 = %d\n", r3); BOOL r4 = >= ; printf("r4 = %d\n", r4); BOOL r5 = <= ; printf("r5 = %d\n", r5);
2.>= <=
符合>或者=任何一个,结果为真
BOOL r4 = >= ; printf("r4 = %d\n", r4); BOOL r5 = <= ; printf("r5 = %d\n", r5);
3. ==, !=
= 用来赋值,==用来判断两个数是否相等
BOOL r6 = == ; printf("r6 = %d\n", r6); BOOL r7 = != ; printf("r7 = %d\n", r7);
三、逻辑运算符
逻辑与:&&, 逻辑或: ||, 逻辑非 !
逻辑表达式的结果只有两种,真或假,用BOOL类型的变量来接收
逻辑与, 并且,同时
表达式: 表达式1 && 表达式2
运算规则 都为真 结果为真 一方为假 结果为假
; ; BOOL r1 = (a < b) && (b == ); printf("r1 = %d\n", r1); BOOL r2 = (b > a) && (a != ); printf("r2 = %d\n", r2); //短路现象:表达式1的结果为假,整个逻辑表达式的结果为假,表达式2将不再执行 BOOL r3 = (a > b) && (a++); printf("r3 = %d\n", r3); printf("a = %d\n", a);
逻辑或 或者,不强调同时
表达式: 表达式1 || 表达式2
运算规则:表达式1或者表达式2任何一个为真,整个逻辑表达式的结果为真,只有当表达式1和表达式2同时为假,整个逻辑表达式结果为假(一真即真,全假则假)
; ; BOOL r1 = (a > b) || (b == ); printf("r1 = %d\n", r1); BOOL r2 = (b < a) || (a != ); printf("r2 = %d\n", r2); //短路现象:当表达式1的结果为真,整个逻辑表达式的结果为真,表达式2将不再执行 BOOL r3 = (a < b) || (a++); printf("r3 = %d\n", r3); printf("a = %d\n", a);
逻辑非 取反
BOOL r4 = NO; BOOL r5 = !r4; printf("r5 = %d\n", r5);
四、if语句
第一种形式
/* if (条件表达式) { 分支语句; } 条件表达式为真,执行分支语句,如果为假,执行分支语句下面的内容 */ , b = ; if (a < b) { printf("条件表达式为真\n"); } printf("我在分支语句的下面\n");
// 练习:定义一个变量age,从键盘输入值,如果age大于等于18,输出”你已经成年了“。 ; printf("请入年龄:"); scanf("%d", &age); ){ printf("你已经成年了"); }
练习:控制台输入一个字符,如果输入的是m,则输出男性,否则什么都不输出。
; printf("请输入一个字符\n"); scanf("%c", &c); if (c == 'm') { printf("男性\n"); printf("不是女性\n"); }
if语句的第二种形式
/*
if (条件表达式) {
语句1;
} else {
语句2;
}
如果条件表达式为真,执行语句1,否则执行语句2
*/
//从控制台输入一个字符,如果输入的是m,则输出男性,否则输出女性 ; printf("请输入一个字符\n"); scanf("%c", &ch); if (ch == 'm') { printf("男性\n"); } else { printf("女性\n"); }
练习:定义一个变量age,从键盘输入值,如果age大于等于18,输出”你已经成年了“,否则输出"你还是个孩子"。
; printf("请输入年龄:"); scanf("%d", &age); ) { printf("你已经成年了"); } else { printf("你还是个孩子"); }
练习:输入一个年份,判断该年份是否是闰年?如果是闰年,则输出该年是闰年,否则输出该年不是闰年。
//(能被400整除) || ((能被4整除) && (不能被100整除)) ; printf("请输入一个年份\n"); scanf("%d", &year); BOOL r1 = year % == ; BOOL r2 = year % == ; BOOL r3 = year % != ; if (r1 || (r2 && r3)) { printf("是闰年\n"); } else { printf("不是闰年\n"); }
条件运算符 ? :
条件表达式? 表达式1 : 表达式2;
如果条件表达式为真,执行表达式1,否则执行表达式2
; ; ; if (a > b) { c = a; } else { c = b; } printf("c = %d\n", c); c = a > b ? a : b; printf("c = %d\n", c);
求三个数的最大值
; ; ; ; max = a > b ? a : b; max = max > c ? max : c; printf("max = %d\n", max);
if语句的第三种形式
/*
if (条件表达式1) {
语句1;
} else if (条件表达式2) {
语句2;
} else if (条件表达式3){
语句3;
} else {
语句4;
}
*/
从控制台输入一个字符,如果输入的是m,则输出男性,否则如果输入的是f,输出女性,否则输出人妖
; printf("请输入一个字符\n"); scanf("%c", &ch); if (ch == 'm') { printf("男性\n"); } else if (ch == 'f') { printf("女性\n"); } else { printf("人妖\n"); }
练习: 从键盘输入一个字符,如果是数字打印 this is digital,如果是大写字母,打印 this is capital letter,如果是小写字母,打印 this is letter,如果是其他字符,打印 other。
//>= '0' <= '9' //>= 'A' <= 'Z' //>= 'a' <= 'z' ; printf("请输入一个字符\n"); scanf("%c", &ch); ') { printf("this is digital\n"); } else if (ch >= 'A' && ch <= 'Z') { printf("this is capital letter\n"); } else if (ch >= 'a' && ch <= 'z') { printf("this is letter\n"); } else { printf("other\n"); }
五、switch...case分支
switch (整型或者字符型的表达式) {
case 值1(整型或者字符型的常量): {
语句1;
break;
}
case 值2: {
语句2;
break;
}
......
default: {
语句3;
break;
}
}
先执行switch后的表达式,根据表达式的值查找想要的case分支,并执行分支语句
default:默认分支,如果没有找到对应的分支,执行default分支
break:结束当前的case分支
从控制台输入一个字符,如果输入的是m,则输出男性,否则如果输入的是f,输出女性,否则输出人妖
; printf("请输入一个字符\n"); scanf("%c", &ch); switch (ch) { case 'm': { ; // 如果需要在case分支中定义变量,分支语句用{}括起来 printf("男性\n"); break; } case 'f': { printf("女性\n"); break; } default: { printf("人妖\n"); break; } }
,对应打出春夏秋冬的英文词。
; printf("请输入1~4的整数\n"); scanf("%d", &value); switch (value) { : printf("Spring\n"); break; : printf("Summer\n"); break; : printf("Autumn\n"); break; : printf("Winter\n"); break; default: break; }