一.选择语句:if switch
1.if语句
语法结构:
if (表达式){
语句块
}
含义:如果表达式的结果为真,则执行语句块
#include <stdio.h> int main() { int score = 0; printf("请输入考试成绩\n"); scanf("%d",&score); if (score>=60) { printf("恭喜你,通过考试!"); } return 0; }
if (表达式){
语句块1
} else {
语句块2
}
含义:如果表达式的结果为真,则执行语句块1;否则,执行语句块2;
int main() {
int score = 0;
printf("请输入考试成绩\n");
scanf("%d",&score);
if (score>=60) {
printf("恭喜你,通过考试!");
}
else {
printf("继续加油吧");
}
return 0;
}
//多分支
if (表达式1){
语句块1
} else if(表达式2) {
语句块2
} else if(表达式3) {
语句块3
} else {
其它情况的语句块
}
含义:如果表达式1的结果为真,则执行语句块1;否则,如果表达式2的结果为真,则执行语句块2; 否
则,如果表达式3的结果为真,则执行语句块3; 其它情况,执行其它情况的语句块。
注意:语句块的含义就是有多条语句,多条语句必须要用{}进行包裹;如果语句块中只有一条语句,可以
省略{}。但C语言建议不要省略。
2.switch语句
switch语句也是一种分支结构,常常用于多分支的情况。
比如:
输入1,打印星期一
输入2,打印星期二
输入3,打印星期三
输入4,打印星期四
输入5,打印星期五
输入6,打印星期六
输入7,打印星期天
应用之前的多分支结构就可以实现
#include<studio.h>
int main(){
\\定义变量day,与天数
int day = 0;
printf("请输入数字(1~7):");
scanf("%d", &day);
\\判断天数打印星期几
if (1 == day) {
printf("今天是星期一!");
}
else if (2 == day) {
printf("今天是星期二!");
}
else if (3 == day) {
printf("今天是星期三!");
}
else if (4 == day) {
printf("今天是星期四!");
}
else if (5 == day) {
printf("今天是星期五!");
}
else if (6 == day) {
printf("今天是星期六!");
}
else if (7 == day) {
printf("今天是星期日!");
}
else {
printf("输入的数字不满足要求!");
}
return 0;
}
这是分支语句,使用switch简化
switch语句格式
switch(表达式){ case 值一:语句块; case 值二: 语句块; case 值n : 语句快; default:语句快; }
#include <stdio.h>
int main(){
int day = 0;
printf("请输入数字(1~7):");
scanf("%d", &day);
switch(day){
case 1:
printf("今天星期一");
break;
case 2:
printf("今天星期二");
break;
case 3:
printf("今天星期三");
break;
case 4:
printf("今天星期四");
break;
case 5:
printf("今天星期五");
break;
case 6:
printf("今天星期六");
break;
case 7:
printf("今天星期天");
break;
default:
printf("输入有误");
break;
}
return 0;
}
注意:
<1>switch语句中应该在每个选项的最后都添加 break ;
<2>break的实际效果是把语句列表划分为不同的部分 <3>default子句
如果表达式的值与所有的case选项都不匹配,怎么办?
其实也没什么,结果就是所有的语句都被跳过而已,程序并不会终止,也不会报错,因为这种情况在C语言
中并不认为是错误。
<4>编程好习惯:在每个switch语句中都放一条default子句,甚至可以在后边再添加一个break。