一.BOOL类型
布尔数据类型是一种非真即假的数据类型,布尔数据类型的变量只有两种值:YES(1)或 NO(0)。
例:BOOL yourGender = YES;
printf("yourGender = %d\n", yourGender);
BOOL iswoman = NO;
printf("iswoman = %d\n", iswoman);
二.关系运算符(> >= < <= == !=)
例: BOOL result;
int a = 3,b = 5,x = 9;
result = a > b;
printf("result = %d\n", result);
result = a <= b;
printf("result = %d\n", result);
result = a != b;
printf("result = %d\n", result);
result = a == b;
printf("result = %d\n", result);
result = a >= b;
printf("result = %d\n", result);
result = a < b;
printf("result = %d\n",result);
三.逻辑运算符
1.逻辑运算符组成的表达式,结果也是非真即假。
&&(逻辑与 ) 运算符两边的表达式结果同时为真,整个逻辑表达式的结果为真;
||( 逻辑或) 运算符两边的表达式只要一个为真,整个逻辑表达式的结果就为真,运算符两边表达式同时为假,整个逻辑表达式的结果为假;
!(逻辑非) 表达式的结果取反;
2.例:
逻辑与 &&
result = x > a && x > b;
printf("result = %d\n", result);
result = a > b && x > b;
printf("result = %d\n", result);
result = a > b && b > x;
printf("result = %d\n", result);
result = a < b && b > x;
printf("result = %d\n", result);
逻辑或 ||
result = a > b || b > x;
printf("result = %d\n", result);
result = a < b || b > x;
printf("result = %d\n", result);
result = a > b || b < x;
printf("result = %d\n", result);
result = a < b || b <x;
printf("result = %d\n", result);
逻辑非 !
result = !(a < b || b < x);
printf("result = %d\n",result);
四.程序的三种结构
1.顺序结构、分支结构、循环结构
2.有关于分支结构:
if语句就是一个分支结构,根据条件进行判断,以决定执行某个分支程序。
语法格式:
if(条件表达式){
语句1;
} //如果条件表达式为真时,程序执行语句1,否则执行下面的语句。
例:if (yourGender){
printf("这是个男的\n");
}
if (yourGender) {
printf("我是女生\n");
}
if(!iswoman) {
printf("这是个女生\n");
}
注意:if条件表达式后面不能有“;”,否则不管条件表达式是否成立,语句都会执行。
例:控制台输入一个字符,如果输入的字符是m,则输出这是个男的,否则什么都不输出。
char c;
printf("请输入一个字符:\n");
scanf("%c", &c);
if (c == 'm') {
printf("这是个男的\n");
}
3.if语句的第二种形式
if (条件表达式){
语句1;
} else {
语句2;
}
例:1.如果从控制台输入一个字符,如果输入的字符是n,则输出钱币正面,否则输出钱币反面。
char d;
printf("请输入一个字符\n");
scanf("%c", &d);
if (d = 'n') {
printf("钱币正面\n");
} else {
printf("钱币反面\n");
}
例:2.输入一个年份,判断该年份是否是闰年?如果是闰年,则输出该年是闰年,否则输出该年份不是闰年。
//注意:闰年能被400整除(或能被4整除,但是不能被100整除)。
int year;
printf("请输入一个年份:\n");
scanf("%d", &year);
if (year % 400 == 0 || (year % 4 == 0 && year % 100 != 0))
{
printf("该年份是闰年\n");
}
45 else {
printf("该年份不是闰年\n");
}
例:3.从键盘输入一个字符,如果是数字,打印this is digital,如果是大写字母,打印this is capital letter,如果是小写字母,打印 this is letter,如果是其他字符,打印 other。
int e;
printf ("请输入一个字符:\n");
scanf("%d", &e);
if(e >= '0' && e <= '9')
{
printf("this is digital\n");
}
else if (e >= 'A' && e <= 'Z')
{
printf("this is capital letter\n");
}
else if(e >= 'a' && e <= 'z')
{
printf("this is letter\n");
}
else {
printf("other\n");
}
4.条件运算符(三目运算符)
格式:条件表达式 ? 表达式1 : 表达式2
注:当条件表达式成立的时候,执行表达式1的值,否则执行表达式2的值
例:int y = 9, z = 21, p;
p = y > z ? y : z;(y > z 为假,条件表达式不成立,所以执行表达式2 即结果取z的值)
printf(" p = %d\n", p);
5.枚举类型
枚举类型是一组有符号名称的整型常量,一一列举所有的状态,罗列出所有可能结果。
语法格式: enum 枚举名 {
枚举值表
} // 作用:提高程序的可读性
例:enum SchoolDepartment {
Computer = 10,
English,
Music,
Chinese = 20,
Teach,
Art,
Accounting,
Electrical,
};
printf("Computer = %d\n", Computer);
printf("Music = %d\n", Music);
printf("Art = %d\n", Art);
printf("Electrical = %d\n", Electrical);
printf("Accounting = %d\n", Accounting);
6.switch 多分支语句,通过判断整型表达式的值,来决定执行那个分支。switch通常和case连用
语法格式
switch (整型表达式) {
case 值1:
{
语句1;
break;
}
case 值2:
{
语句2;
break;
}
...
case 值n:
{
语句n;
break;}
default:
{
语句default:
break;
}
enum season {
spring = 1,
summer,
autumn,
winter,
};
printf("请输入1-4之间的数字\n");
int season;
scanf("%d", &season);
switch (season) {
case spring:
printf("spring\n");
break;
case summer:
printf("summer\n");
break;
case autumn:
printf("autumn\n");
break;
case winter:
printf("winter\n");
break;
}