if (表达式1){
if (表达式2) 语句1;
} else {
if (表达式3) 语句2;
else 语句3;
这样可以很明显看出第一个if同第一个else相匹配。结构较清晰。
以前的文章里所讲的级联的else-if语句同样可以实现多分支结构。https://blog.csdn.net/passxgx/article/details/123473026?spm=1001.2014.3001.5501
通过上文可以看到,实现多分支结构可以使用if-else语句,或者级联的else-if结构。同样也可以使用switch-case语句,但是switch-case语句仅能是常量表达式,例如表示一些分段函数的情况下,远没有if语句方便简单。switch-case语句的优点是结构清晰,直观,可读性强。如果if-else语句嵌套过多,可读性会大大降低,相对来说级联的else-if语句直观一些,但没有switch-case结构清晰。在设计程序时要根据需要选择合适的语句来实现多分支结构。
参考 C语言程序设计(第4版)/何钦铭,颜晖
例题及课后习题参考程序https://gitee.com/sgxgitee/mooc-c
当
分支比较少的时候我们使用if else
语句解决,当
分支比较多的时候,我们要使用
switch case语句解决,针对
分支的复杂性选择合适的程序解决。
当
分支过多时,用 if else 处理会不太方便,而且容易出现 if else 配对出错的情况。例如,输入一个整数,输出该整数对应的星期几的英文表示:
#include <stdio.h>
int main(){
int a;
关于switch() case语句
1)case 后面必须是一个整数,或者是结果为整数的表达式,但不能包含任何变量。请看下面的例子:
1. case 10: printf("..."); break; //正确
2. case 8 + 9: printf("..."); break; //正确
3. case 'A': printf("..."); break; //**正确,字符和整数可以相互转换**
4. case 'A' + 19: printf("..."); break; //正确,字符和整数可以