您的位置:首页 > 编程语言 > C语言/C++

进击的KFC:第二节:C语言:关系运算符、逻辑运算符、if 、条件运算符、switch..case的学习

2015-10-10 09:08 357 查看
(一). 第二天所学内容全部知识点汇总:
1.宏定义:C语言中的一种预处理的方式
格式: #define 宏名 字符串 // 结束时千万不要加分号
2.关系运算符:( > >= < <= 同优先级) 优先级高于 (== !=)
注意:判断两个数是否相等,用==
3.逻辑运算符: &&一假即假 ||一真即真 所以会出现短路现象. 终极口诀:非 0 即 真!
4. 程序的三中结构:顺序结构,分支结构,循环结构
if语句是有三种形式的分支结构
5.条件表达式(三目运算符)
格式: 判断条件 ? 返回值1 : 返回值2;
如果判断条件成立,返回返回值1,反之,返回返回值2;
6.枚举型: enum seasson {
spring,
summer = 13,
autumn,
winter
}; // 分号结尾
枚举型属于构造类型.
格式:enum 枚举名 {枚举值表};
目的:提高程序的可读性
7.switch语句:
switch(整型表达式)
{
case 值1:{语句1; break;}
case 值2:{语句2; break;}
case 值3:{语句n; break;}
...
default:{语句n + 1;break;}
}
break⽤在switch...case中⽤于结束某个case,然后执 ⾏switch之外 的语句
注意事项:
switch语句和if-else级联式⽐较,switch语句往往⽐级联式更容易阅 读,更直观。 switch—开关,case—情况,开关决定发⽣的情况。 case后边的标签只能是整型常量或者整型常量表达式,不能⽤变量 作为case的标签。
整个default语句都可以舍掉
多个case可以运⾏⼀个语句块
case中定义变量需要加{}

(二) 具体代码实例
//友情提示:代码在调试时请一段段 解注释符号后调试,有些变量取的时候重名了,而且一段段看有助于理解

#import <Foundation/Foundation.h>

// 宏定义
吧工程中 所有的KFC
全部替换成10
// 是替换过程
结束时千万不要加分号
#define KFC 20

int main(int argc,
const char * argv[]) {

// BOOL是一种数据类型
// TA的值只有0和1
// 系统通过预编译
把0编译成NO,
把1编译成YES
// 所以咱们在工程中一般只看见yes
和 no

printf("%d\n",KFC);

// 声明一个BOOL变量
初值为NO
// bool 是在C语言中使用的,true,false
// BOOL 是OC中使用的, yes,no
BOOL b =
YES;
printf("%d\n",b);
// bool a = true;
// printf("%d",a);

// 定义两个整形变量比较大小
int n1 =
2;
int n2 =
3;
// 关系运算符 > >= < <= == !=
// 如果成立的话
返回yes也就是1
反之NO也就是0
// 关系运算符优先级
// (> >= < <= 同级关系)
大于 (== !=)
BOOL res = n1>=n2;
printf("%d\n",res);

// 注意 ==
是判断两边是否相等 是双等号
// 练习: 1 == 3 > 1
相当于 1 == (3 > 1)
// 声明BOOL变量接收
返回结果
BOOL res1 =
1 == 3 >
1;
printf("%d\n",res1);

// 逻辑运算符 && || !
// && 一假则假(必须两边全真,整个逻辑表达式为真)
// || 一真则真(必须两边全假,整个逻辑表达式才为假)
// ! 取反
// 终极口诀:非0即真

// 逻辑与短路现象
// 逻辑与
如果前面的为假,那么后面就不执行了
这就是短路现象
int d =
5;
int e =
10;
BOOL res2 = d > e && d++;
//d不为0,所以右侧为真
printf("%d\n",res2);
printf("%d\n",d);

// 逻辑或的短路现象
// 逻辑或
如果前面的为真,那么后面就不执行了
整个表达式为真
int f =
4;
int g =
7;
BOOL res3 = f < g || f++;
printf("%d\n",res3);
printf("%d\n",f);

// 程序的三种结构
// 1.顺序结构
// 2.分支结构(重点)
通过一个判断 来选择执行哪个语句
// 3.循环结构

// if 语句写法
/*

if(判断语句){

要执行语句

}
如果判断语句为真
就执行大括号中的语句
如果判断语句为假
就跳过大括号中的语句(不执行)

*/
// 需求:定义两个整形变量
如果a > b 打印a
比 b 大
int h =
5;
int i =
7;
if(h > i) {
printf("h<i\n");
}

// 如果从控制台输⼊⼀个字符,如果输⼊的是m,则输出男性,否则输出⼥性,那怎么实现呢?
// char j = 0;
// printf("输入一个字符:");
// scanf("%c",&j);
// if(j == 'm') {
//
// printf("man");
// }
// else {
// printf("woman");
// }

// if 语句的第二种形式
/*

if(判断条件){

语句1;
}else{

语句2;
}

不管if语句是哪种形式,首先要看判断条件
条件成立
执行语句1 条件不成立,执行语句2
*/

// 如果条件成立
就执行条件后精耕的大括号
// 如果条件不成立
就只想else后面的大括号
// 终极口诀 :
分枝结构中 只执行一个分之中的语句

// 输⼊⼀个年份,判断该年份是否是闰年?如果是闰年,则输出该年是闰年,否则输出该年不是闰年。
// 判断条件:能被4整除且不能被100整除,
或者 能被400整除
// int year = 0;
// printf("输入一个年份:");
// scanf("%d",&year);
// // 定义一个BOOl类型变量来接收一下
// BOOL r1 = year % 4 == 0 && year % 100 !=0;
// BOOL r2 = year % 400 == 0;
//
// if ( r1 || r2) {
// printf("%d是闰年",year);
// }else{
//
// printf("%d不是闰年",year);
// }

// if 的第三种形式 (级联式)
/*
if (判断条件1) {

语句1;
} else if(判断条件2){

语句2;
}
else {

语句3;

}

*/
// 练习
// 从键盘输⼊⼀个字符,如果是数字打印this is digital,如果是⼤写字
// ⺟,打印this is capital letter,如果是⼩写字⺟,打印this is letter,
// 如果是其他字符,打印other。

// 实际上
输入一个字符 就
相当于 输入一个0-255的数
// char j = 0;
// printf("输入一个字符:");
// scanf("%c",&j);
// if(j >= 'A' && j <= 'Z'){
//
// printf("大写字母");
// } else if (j >= 97 && j <= 122){
//
// printf("小写字母");
// } else if (j >='0' && j <= '9'){
//
// printf("数字");
// } else{
// printf("其他字符");
// }
//

// 条件表达式 (三目运算符)
// 判断条件 ?
返回值1 : 返回值2;
// 如果判断条件成立,就返回返回值1,反之
返回返回值2;
// 需求:丁一两个整形变量,
打印 比较大的一个(利用条件表达式)
// while (1) {
// int n3 = 0;
// int n4 = 0;
// printf("输入两个数:");
// scanf("%d",&n3);
// scanf("%d",&n4);
// printf("较大值为:%d\n",n3 > n4 ? n3 : n4);
// }

// 枚举类型
/*

定义枚举类型
enum 枚举类型的名字 {

枚举值的列表

};

*/
// 需求:创建四季的枚举
// 枚举的值默认从0开始
依次递增
// 也可以
指定枚举的值
enum season{
spring, //
注意枚举值要用逗号隔开
summer = 11,
autumn,
winter
};

// printf("%d",spring);

// switch 语句
/*

switch (整形表达式(数字或者字符)) {
case 值1(数字或者字符):
执行语句1;
break; // 跳出整个switch语句

case 值2(数字或者字符):
执行语句2;
break; // 跳出整个switch语句
......
default:
语句 //
如果前面的case都没有匹配上,就执行这句语句
break;
}

*/

// 从控制台输⼊1~4,对应打出春夏秋冬的英⽂词。

while(1)
{
int x =
0;
printf("\n输入1-4:");
scanf("%d",&x);
switch (x) {
case
1:

{
printf("spring\n");
int yy =
0;
printf("%d",yy);
}
break;
case
2:
printf("summer\n");
break;
case
3:
printf("autumn\n");
break;
case
4:
printf("winter\n");
break;

// 1.default可以省去
// 2. default位置可以变
只要有case没有匹配成功,就会去执行default后面的语句
default:
printf("请输入正确的1-4数字\n");
break;
}
}

return
0;

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: