/// BOOL数据类型
* BOOL表示的是一种非真即假的数据类型
* BOOL类型的变量只有YES和NO两个值
* YES表示真,NO表示假
* 在C语言中,非0即是真
BOOL b1 = true;
BOOL b2 = YES;
// BOOL类型的变量,在我们的分支语句和循环语句中是很常用的
/// 关系运算符
* < : 小于
* > : 大于
* == : 等于(注意:是两个等号)
* != : 不等于
* <= : 小于等于
* >= : 大于等于
* 主要用于比较运算,结果只能有真假两种情况,结果使用BOOL类型存储
int a1 = 5;
int a2 = 10;
BOOL b3 = a1 > a2;
BOOL b4 = a1 == a2;
BOOL b5 = a1 <= a2;
/// 逻辑运算符
* && : 逻辑与 : 条件一与条件二同时成立才算成立
* || : 逻辑或 : 条件一与条件二只要有一个成立即是成立
* ! : 逻辑非 : 将表达式的结果取反
*
* 注意:逻辑与(&&)和逻辑或(||)存在短路现象
BOOL b6 = (3 > 5) && (5 > 8);
BOOL b7 = (1 < 5) || (3 < 4);
BOOL b8 = !(1 < 9);
/// 程序的三种结构
* 1. 顺序结构:顺序执行语句,从上到下,从左到右
* 2. 分支结构:通过进行某一个判断执行不同的语句
* 3. 循环结构:在满足某一个条件的时候,反复执行一个语句序列
/// if语句
// 用if语句可以构成分支结构,它根据给的条件进行判定,以决定某个分支程序段
// C语言中的if语句共有3种形式
int a3 = 1;
int a4 = 5;
// 最简单的if语句
if (a3 > a4) {
printf("a3 > a4");
}
// 带else的语句
if (a3 > a4) {
printf("a3 > a4");
} else {
printf("a3 <= a4");
}
// 多个if else的语句
if (a3 > a4) {
printf("a3 > a4");
} else if (a3 == a4) {
printf("a3 == a4");
} else if (a3 < a4) {
printf("a3 < a4");
}
* 注意:if语句中是不带分号的。
// 练习1
// 1. 从控制器输入一个字符,如果是m,则输出男性,否则什么都不输出
// 2. 从控制器输入一个字符,如果是m,则输出男性,否则输出女性
char c;
// scanf("%c", &c);
if (c == 'm') {
printf("男性");
} else {
printf("女性");
}
// 练习2:判断时候是闰年
int year = 0;
// scanf("%d", &year);
if ((year % 400 == 0) || ((year % 4 == 0) && (year % 100 != 0)) ) {
printf("%d年是闰年", year);
} else {
printf("%d年不是闰年", year);
}
// 练习3:判断输入的是数字、小写字母、小写字母
char c1;
scanf("%c", &c1);
if (c1 >= 'a' && c1 <= 'z') {
printf("%c是小写字母", c1);
} else if (c1 >= 'A' && c1 <= 'Z') {
printf("%c是大写字母", c1);
} else if (c1 >= '0' && c1 <= '9') {
printf("%c是数字", c1);
}
// 条件运算符
// 求两个数的最大值
int a5 = 100, a6 = 200, temp = 0;
if (a5 > a6) {
temp = a5;
} else {
temp = a6;
}
// 条件运算符的使用:表达式 ? "选择1" : "选择2"
temp = a5 > a6 ? a5 : a6;
/// 枚举类型
* 1. 一组有符号名称的整形变量
* 2. 枚举属于构造类型
* 3. enum 枚举名 {枚举值表};
* 4. 提高程序可读性
* 5. 将人能看懂的标示符和计算机识别的数字建立对应关系
// 创建一个四个季节的枚举
enum season {
spring, // 值为0
summer,
autumn,
winter
};
// 创建枚举类型变量
enum season s1 = spring;
// s的类型是 enum season 太麻烦,所以我们来给enum season 起个别名
typedef enum season Season;
Season s2 = summer;
// 或者
typedef enum {
spring1,
summer2,
autumn1,
winter1
} Season1;
Season1 s3 = winter1;
/// switch语句
* 多分支语句,通过判断整形表达式的值,来决定执行哪个分支
* switch通常与case配合使用
// switch语法
int s = 0;
switch (s) {
case 0: {
printf("s == 0");
break;
}
case 1: {
printf("s == 1");
break;
}
case 2: {
printf("s == 2");
break;
}
case 3: {
printf("s == 3");
break;
}
default:
printf("s == 其他");
break;
}
// 我们也会使用枚举和switc搭配来使用
Season1 season = autumn1;
switch (season) {
case spring1: {
printf("春天");
break;
}
case summer2: {
printf("夏天");
break;
}
case autumn1: {
printf("秋天");
break;
}
case winter1: {
printf("冬天");
break;
}
default: {
printf("其它");
break;
}
}
* break 是什么?
* break 用于跳出case,继续执行switch后面的代码
// 练习4:从控制台输入1--4,打印出春夏秋冬的英文
int seasonInt = 0;
scanf("%d", &seasonInt);
switch (seasonInt) {
case 0: {
printf("spring");
break;
}
case 1: {
printf("summer");
break;
}
case 2: {
printf("autumn");
break;
}
case 3: {
printf("winter");
break;
}
default: {
printf("Others");
break;
}
}
0 0