C_Language_03
C_Language_03
布尔类型:
1.C89没有布尔类型,C工程支持C89
C99有布尔类型,OC工程支持
2.两种数值 真 假
bool true真 false假 C语言
BOOL YES真 NO假 OC语言
bool a0 = 4;
BOOL a = 4;
printf("%d %d\n",a0,a);
3.真假的表示
C语言 非0即为真
OC语言 YES定义为1,NO定义为0
4.输出转义字符%d
5.作用于分支结构循环结构的判断
BOOL a = YES;
BOOL b = NO;
printf("a = %d\n",a);
printf("b = %d\n",b);
关系运算符:
1.用于进行两个数的比较
2.关系运算符的结果只有两种:真,假;使用BOOL类型变量接受
3.关系表达式的组成:由变量,常亮,关系运算符组合而成
大于 小于
BOOL a1 = 5 > 3;//真
printf("%d\n",a1);//输出为1
BOOL a1 = 5 < 3;//假
printf("%d\n",a1);//输出为0
int c, oc;
printf("请输入C语言成绩:");
scanf("%d",&c);
printf("请输入OC语言成绩:");
scanf("%d",&oc);
BOOL i = c > oc;
printf("结果为%d\n",i);
printf("结果为1表示C语言成绩高于OC成绩\n结果为0表示C语言成绩低于OC成绩\n");
大于等于 小于等于
BOOL a1 = 5 >= 3;
printf("%d\n",a1);
BOOL a2 = 5 <= 3;
printf("%d\n",a2);
等于 不等于
==用于判断是否相等,左右;两侧可以是变量也可以是常量
= 用于赋值 左侧只能是变量
*****浮点型数不能用 == 比较是否相等(小数存在四舍五入,不精确)
float a0 = 0.123456789;
float b0 = 0.12345678912;
BOOL c = a0 == b0;
printf("%d\n",c);
int a = 3;
int b = 5;
BOOL c0 = a == b;
printf("%d\n",c0);
BOOL c1 = a != b;
printf("%d\n",c1);
逻辑运算符:
1.逻辑运算符的结果只有两种:真,假;使用BOOL类型变量接受
2.逻辑表达式:变量、常量、逻辑运算符组合而成
逻辑与 &&
1.逻辑与表达式:表达式1 && 表达式2
2.运算规则:
(1)先执行表达式1,再执行表达式2
(2)表达式1和表达式2同时为真,结果为真;否则结果为假
int a = 10;
int b = 12;
BOOL c = a < b && b < 3;
printf("%d\n",c);
(3)短路现象
表达式1的结果为假,不再执行表达式2的值
BOOL d = a >b && a++;
printf("%d %d\n",d,a);
逻辑或 ||
1.逻辑或表达式:表达式1 || 表达式2
2.运算规则:
(1)先执行表达式1,再执行表达式2
(2)表达式1和表达式2有一个为真或两个都为真,结果为真,其他情况,结果为假。一真即真。
int a = 3;
int b = 4;
BOOL c = a > b || b < 2;
printf("%d\n",c);
3.短路现象
printf("a = %d b = %d\n", a, b);
BOOL d0 = a > b || a++;
printf("d = %d a = %d\n", d0, a);
printf("a = %d b = %d\n", a, b);
BOOL d1 = a < b || a++;
printf("d = %d a = %d\n", d1, a);
逻辑非 !
1.逻辑非,取反运算
2.运算规则:对真假取反
BOOL a = YES;
BOOL b = !a;
printf("a = %d\n",a);
printf("b = %d\n",b);
运算符优先级
!>算数运算符>关系运算符>逻辑运算符>赋值运算符
if控制语句:
1.程序设计的三种结构:顺序、分支、循环
(1)顺序:程序中的语句按照先后顺序执行
(2)分支:又称为选择;通过一个判断,选择执行某个分支的语句。例如:有女朋友就买房结婚,否则就租房打光棍
(3)循环:满足某个条件的时候,重复执行某个代码段
分支:if switch
if 控制语句的作用:通过判断,选择执行某个分支语句
1.if第一种形式
if (条件表达式) {
语句
}
运行逻辑:如果表达式为真,执行{}内的语句,如果为假,跳过{},执行后面。
int Score;
printf("Enter Score:");
scanf("%d",&Score);
if (Score > 90) {
printf("小伙真帅!\n");
}
2.if第二种形式
if (条件表达式) {
语句1
} else {
语句2
}
int Score;
printf("Enter Score:");
scanf("%d",&Score);
if (Score > 90) {
printf("小伙真帅!\n");
}else{
printf("凑合看吧!\n");
}
3.if第三种形式
if (条件表达式1) {
语句1
} else if(条件表达式2){
语句2
} else{
语句3
}
char sex;
printf("Please enter a char: ");
scanf("%c",&sex);
if (sex == 'm') {
printf("this people is a man\n");
} else if(sex == 'w'){
printf("this people is a woman\n");
} else{
printf("It is a people?\n");
}
条件运算符:
条件表达式 ? 表达式1:表达式2
运算规则:如果表达式为真,整个表达式的值为表达式1的值,如果为假,整个表达式的值为表达式2的值
int a = 3,b = 4;
int c = a > b ? a : b;
printf("%d\n",c);
printf("输入两个数:");
int a, b;
scanf("%d%d",&a,&b);
int c = a > b ? a : b;
printf("两个数中较大数为:c = %d\n",c);
printf("请输入三个数:");
int a, b, c;
scanf("%d%d%d",&a, &b, &c);
int d = a > b ? (a > c ? a : c) : (b > c ? b : c);
// int d = a > b ? a > c ? a : c : b > c ? b : c;
printf("%d\n",d);
多分支语句:
switch...case
语法:
(1)switch后面是整形或者字符型表达式
(2)case后面市整数或字符型常量
(3)case后面呢需要添加{}
(4)break case和default默认都跟随一个break语句,用于结束某个case,然后结束switch 控制语句,执行switch之后的语句
运行逻辑:
(1)如果表达式和某个case常量相等,执行这个case后面的语句
(2)如果没有表达式和某个常量相等,执行default后面的语句
char a;
printf("请输入一个字符:");
scanf("%c",&a);
switch (a) {
case 'm':{
printf("Man\n");
break;
}
case 'w':{
printf("Women\n");
break;
}
default:{
printf("不是人!!!\n");
break;
}
}
枚举类型:
1.枚举属于构造类型
2.一组具有名称的 整形变量
3.目的:提高代码的可读性。标识符:人类可以识别的。数字:计算机可以识别
4.语法:
enum 枚举变量名{
标识符1,
标识符2,
...
};
5.定义枚举类型写在函数外面
6.枚举类型变量每次只能赋一个数值,但是数值包含多种
enum ColorType {
yellow,//默认从0开始
red,
blue = 4,
green,
};
enum ColorType Color1 = yellow;
enum ColorType Color2 = red;
enum ColorType Color3 = blue;
enum ColorType Color4 = green;
printf("%d\n",Color1);
printf("%d\n",Color2);
printf("%d\n",Color3);
printf("%d\n",Color4);
定义枚举类型,使用9001~9004分别表示4个部门的分机号,四个部门依次是 市场部、教务部、教学部、就业部
enum SectionPhoneNumber{
Market = 9001,
Acdemic = 9002,
Education = 9003,
Career = 9004,
};
enum SectionPhoneNumber Section1 = Market;
enum SectionPhoneNumber Section2 = Acdemic;
enum SectionPhoneNumber Section3 = Education;
enum SectionPhoneNumber Section4 = Career;
printf("%d\n",Section1);
printf("%d\n",Section2);
printf("%d\n",Section3);
printf("%d\n",Section4);

浙公网安备 33010602011771号