本章主要内容
一 、BOOL 布尔类型
二 、关系运算符
三 、逻辑运算符
四 、if 语句
五 、枚举类型
六 、switch 语句
1, BOOL 布尔类型
BOOL 类型是是一种非真即假的类型,他的返回值只有 YES 和 NO YES 表示真, NO 表示假 ,在 C 语言中.认为非0即为真.
在分支语句中经常会用到 BOOL类型的返回值作为判断条件
2, 关系运算符
这和我们数学中所学的比较类似,只是在表示方式不尽相同
> >= < <= == !=
在 C 语言中>= <= '='号写在后面,这和数学是不相同的.
== 表示在 C 语言中表示的是 等于('=');
!= 表示 不等于
关系运算符 主要用作比较运算.比较的结果只有真和假,可用 BOOL 类型变量接受返回值.
3, 逻辑运算符
逻辑运算符组成的表达式,结果也只有真和假 两种情况.
(&& 逻辑与) 通俗来讲, 与就是并且的意思 即运算符两边都成立(为真)的情况下.整个表达式才成立(为真), 否则就不成立(为假).
(|| 逻辑或) 通俗的来讲, 就是 或的意思. 运算符两边只要有一个成立(为真),整个表达式的值就为真,两边都不成立(都为假),整个表达式的值为假.
(! 逻辑非) 将表达式的值,取反,
注意事项: 逻辑与和逻辑或存在短路现象,
例如: 表达式1 && 表达式2 如果表达式的1为假了.编辑器就不会在计算表达式2的值.因为,&&---- 一假即假 逻辑与必须表达式两边都成立才行,所以没有必要在计算表达式2的值
同理.||---- 一真即真,逻辑或 也一样.表达式1 || 表达式2.如果表达式1的值为真了.也不再计算表达式2的值.
4, if 判断语句
用 if 语句可以构成分支结构 ,根据条件.选择执行相应的语句
C 语言中 if 语句有三种基本形式
①:如果括号中的 条件表达式成立的话,就会实行花括号内的 {语句1},否则跳过{语句1},执行花括号后的语句.
if (条件表达式) {
语句1;
}
练习: 输入一个字符 如果输入的是 'm' 输出这是男性.否则什么都不输出
char a = 0;
printf("please enter a char\n");
scanf("%c",&a);
if(a == 'm'){
printf("男性\n");
}
如果输入的是 'm', 输出男性,否则输出女性
char a = 0;
printf("please enter a char\n");
scanf("%c",&a);
if(a == 'm'){ // 如果 字符变量 a == 'm' 成立 则实行 花括号内的语句 输出 男性
printf("男性\n");
} // 如果不成立,则执行花括号后的语句 输出 女性
printf("女性\n");
② if 语句的第二种形式
if (条件表达式) { // 条件表达式为真时,实行 语句1.否则执行 语句2
语句1;
} else {
语句2;
}
例如:
char a = 0;
printf("please enter a char\n");
scanf("%c",&a);
if(a == 'm'){ // 如果 字符变量 a == 'm' 成立 则实行 花括号内语句1 输出 男性
printf("男性\n"); 语句1
} else { // 如果不成立,则执行花括号后语句2 女性
printf("女性\n"); 语句2
}
③ if 语句的第三种形式
语法形式(级联式)
if (条件表达式1) {
语句1;
} else if (条件表达式2) {
语句2;
} else {
语句3;
}
如果 条件表达式1 为真.执行 语句1, 否则 在判断 条件表达式2的真假,如果为真执行,语句2.否则执行 语句3.
条件运算符
条件表达式? 表达式1:表达式2
a > b ? a : b
如果条件表达式为真,表达式1的值,就是整个表达式的值
如果条件表达式为假,表达式2的值,就是整个表达式的值
五 、 枚举类型
一组有符号名称的整型常量, 一一列举所有状态,罗列出所有的可能的结果.
枚举属于构造类型.
enum 枚举名 {枚举值列表};
目的 : 提高程序的可读性
作用 : 将人能看懂的标示符与计算机能识别的数字建立对应的关系.
语法示例:
enum season {
spring = 1, // 默认从0 开始
summer,
autumn
winter
};
六 、 switch 语句
多分支语句,通过判断整型表达式的值,来决定执行哪个分支.
switch 通常与 case 配合使用.
语法:
switch (整型表达式) { //当(整型表达式和 case n中的值相等时,执行.相应 case n 中的语句. break 是结束标示符.)
case1 值1: //整型表达式 = case1 的值 执行 语句1,遇到 break 结束执行 如果没有 brea k 程序是一直往下执行.
语句1; // 一个 case 中可以 执行多个语句
break;
case2 值2:
语句2;
break;
default: // default 是 所有 case 值都不等于 整型表达式 就执行他后面的语句, 整个 default 语句都可以省去
语句 n;
break;
}
总结
- if 和 switch 是实际开发中最常用的语句
- if 语句的 条件表达式,通常是关系表达式,或者逻辑表达式
- switch..case 语句通常会有 break 结束 case 语句的执行.