3. if 语句实现多分支结构
if 语句也是语句,它可以放入到 C 语言语法中能放入语句的任何语句中,如(if 语句、for 语句等)。
前面我们已经学过了 if 语句的语法。在如下的语法中
if (表达式) 语句1 else 语句2
语句2 部分也可以放入一条 if 语句。这样一层一层的嵌套写法就形成了 C 语言的多分支结构。如将如下 if 语句的语法嵌套到上述语法的语句2部分。
if (表达式2) 语句2 else 语句3
这样就形成了如下的语法结构:
if (表达式1) 语句1 else if (表达式2) 语句2 else 语句3
将上述语法结构进行整理折行后就形成了如下的三分支的结构的语法(三个语句三选一执行)。
if (表达式1)
语句1
else if (表达式2)
语句2
else
语句3
其实 if 语句还可以进一步嵌套,形成4分支、5分支或更多分支的应用结构。
这样嵌套的 if 语句的语法结构的最终执行顺序是程序自上而下来执行表达式,去找最先成立的一个,然后执行对应的语句后结束 if 语句。
示例:
写一个程序,输入一年中的月份(1~12),打印这个月在哪儿个季度,如输入 2 就打印春季。如果输入非1~12的其它数字,则提示您输错了。
#include <stdio.h>
int main(int argc, char *argv[]) {
int month;
printf("请输入月份:");
scanf("%d", &month);
if (month >= 1 && month <= 3) {
printf("春季\n");
} else if (month >= 4 && month <= 6) {
printf("夏季\n");
} else if (month >= 7 && month <= 9) {
printf("秋季\n");
} else if (month >= 10 && month <= 12) {
printf("冬季\n");
} else {
printf("您输入的月份不合法\n");
}
return 0;
}
练习:
写一个程序,输入一个学生的三科成绩:
- 打印出最高分是多少?
- 打印出最低分是多少?
- 打印出均分是多少?