分支结构:
if 语句:
- 第一种:如果条件表达式成立就执行小括号后面大括号中的语句
if(条件表达式){
语句;
...
}
- 第二种:如果条件表达式成立就执行if后面小括号后面大括号中的语句,否则就执行else后面大括号中语句
这里至少有一个代码会被执行
if(条件表达式){
语句;
...
}else{
语句;
...
}
- 第三种:
if(条件表达式1){
语句;
....
}else if(条件表达式2){
语句;
....
}else if(条件表达式3){
语句;
....
}
....
else{
语句;
....
}
特点:
- 这么多代码块中最多只有一个代码块会被执行
- 当程序执行条件表达式3时候,说明其前面的所有表达式都不成立
- 如果if语句中有else 那么必有一个代码块会被执行到
if语句的特点:
- 都是if开头
- 可以有任意个else if
- 最多只能有一个else语句
- 如果if语句后面只有一条语句,那么if后面的大括号是可以省略的(通常开发也不这么干)
if嵌套:if语句内部可以嵌套其他if语句
总结: if语句也是语句,只要能够写语句的地方都可以写if语句
if(条件表达方式){
语句;
...
if(条件表达式){
语句;
...
}
语句;
....
}
省略大括号的if语句:当if后面只有一条语句的时候,那么if后面的大括号可以省略
switch语句:
1. 表达式
表达式计算的结果一定是整型值(short,int,long,char字符是特殊的整型),不能是浮点型,也不能是字符串。
2. case:
1) 必须是常量,不能是变量
2) 一个case只能对象一个常量值
3) 常量值必须是整型
4)case后的值不可以重复(每个case值不能重复)
5)每个case后面可以跟0~n多条语句
3. default
- 可以有,也可以没有,也可以随便放
- default并不一定非得放在最后一个分支,也可以放中间或前面。一般情况下,都放在最后。
- 无论default写到什么地方, 它都会最后执行(只有前面所有的case都不满足的情况才会执行)只要某一个case满足, 那么后面所有的case和default都会失效。
注意点:
- case 后面的常量不可以重复
- break 作用:结束switch语句
- switch 语句只有遇到break 或者 switch后面大括号才会结束
- 当switch与某一个case匹配了,那么后面的所有case都失效了
- case 后面只能一个常量或者常量表达式
- switch 后面的小号中只能是整形表达式
/*
case 1:
int a = 2;
break;
*/
// 如果在case中定义了新的变量,必须用大括号{}包住
case 0:
{
int a = 2;
break;
}
switch (month) {
case 12:
case 1:
case 2:
printf("冬季\n");
break;
case 3:
case 4:
case 5:
printf("春季\n");
break;
case 6:
case 7:
case 8:
printf("夏季\n");
break;
case 9:
case 10:
case 11:
printf("秋季\n");
break;
default:
printf("不要放弃治疗\n");
break;
}
/*
1、当某个变量只有几个固定的取值时候,使用switch会更加简洁
2、如果是区间[-无穷,1] [10,+无穷] 就用if if(x <= 1 || x >= 10)
*/
案例:
/** 加减乘除计算器 (提示:录入1+2输出1+2=3)*/ int test() { int num1,num2; //定义两个变量,表示操作数 char operator; //定义一个char类型变量,表示要进行操作 printf("请按照如下格式录入(1 + 1)\n"); //提示用录入 scanf("%d %c %d",&num1,&operator,&num2); int result; switch (operator) { case ‘+‘: result = num1 + num2; break; case ‘-‘: result = num1 - num2; break; case ‘*‘: result = num1 * num2; break; case ‘/‘: if (num2 == 0) { printf("除数不能为零\n"); return 0; } result = num1 / num2; break; default: printf("你录入格式错误\n"); break; } printf("%d %c %d = %d\n",num1,operator,num2,result); return 0; } |
循环结构:
循环是一次又一次的执行相同的代码块
循环:用来处理一些重复执行的操作
写循环的具体步骤:
1、确定需要重复执行的操作
2、确定循环终止的条件:
1) 在循环开始之前,需要做点事(定义一个循环控制变量并将其初始化)
2) 确定循环约束条件
3) 在每一次循环结束的时候或在循环中,要去改变循环控制变量的值,让它不断接近约束条件
最简单的死循环:
- while (1);
- for(;;); // 即for(;1;); 注意:for循环中的条件表达式默认为真
do while和while的区别:
while如果条件表达式一开始就不满足, 那么循环体永远不会被执行
do while如果条件表达式一开始就不满足, 同样会执行一次循环体
也就是说: 无论条件表达式是否满足, do while始终会执行一次循环体