文章目录
- 1 函数结构
- 2 执行过程
- 3 break关键字
- 4 补充说明
- 5 C语言的switch case函数总结
1 函数结构
switch 是另外一种选择结构的语句,用来代替简单的、拥有多个分枝的 if else 语句,基本格式如下:
switch(表达式){
case 整型数值1: 语句 1;
case 整型数值2: 语句 2;
…
case 整型数值n: 语句 n;
default: 语句 n+1;
}
2 执行过程
它的执行过程是:
首先计算“表达式”的值,假设为 m。
从第一个 case 开始,比较“整型数值1”和 m,如果它们相等,就执行冒号后面的所有语句,也就是从“语句1”一直执行到“语句n+1”,而不管后面的 case 是否匹配成功。
如果“整型数值1”和 m 不相等,就跳过冒号后面的“语句1”,继续比较第二个 case、第三个 case……一旦发现和某个整型数值相等了,就会执行后面所有的语句。假设 m 和“整型数值5”相等,那么就会从“语句5”一直执行到“语句n+1”。
如果直到最后一个“整型数值n”都没有找到相等的值,那么就执行 default 后的“语句 n+1”。
需要重点强调的是,当和某个整型数值匹配成功后,会执行该分支以及后面所有分支的语句 。
3 break关键字
break
是C语言中的一个关键字,专门用于跳出 switch 语句。所谓“跳出”,是指一旦遇到 break,就不再执行 switch 中的任何语句,包括当前分支中的语句和其他分支中的语句;也就是说,整个 switch 执行结束了,接着会执行整个 switch 后面的代码。
4 补充说明
最后需要说明的两点是:
- case 后面必须是一个整数,或者是结果为整数的表达式,但不能包含任何变量。请看下面的例子:
case 10: printf("..."); break;//正确case 8+9: printf("..."); break;//正确case 'A': printf("..."); break;//正确,字符和整数可以相互转换case 'A'+19: printf("..."); break;//正确,字符和整数可以相互转换case 9.5: printf("..."); break;//错误,不能为小数case a: printf("..."); break;//错误,不能包含变量case a+10: printf("..."); break;//错误,不能包含变量
- default 不是必须的。当没有 default 时,如果所有 case 都匹配失败,那么就什么都不执行。
5 C语言的switch case函数总结
C语言中的switch
语句是一种多分支选择结构,它可以根据表达式的值选择执行不同的代码块。下面是对switch
语句的常见用法和总结:
switch
语句的基本语法:
switch (表达式) {case 值1:// 代码块1break;case 值2:// 代码块2break;...default:// 默认代码块}
表达式
的值会与各个case
后面的值进行比较。- 如果某个
case
的值与表达式
的值相等,则执行相应的代码块
。 break
语句用于退出switch
语句,避免进入其他case
中的代码块。- 如果没有
break
语句,程序会继续执行下一个case
中的代码块。
- 特殊情况:
- 若某个
case
的代码块为空,可以省略break
语句,控制流会继续执行下一个case
中的代码块。 - 可以使用
default
关键字来处理未匹配到任何case
的情况,默认代码块可选。
switch
语句的特点和适用场景:
switch
语句适用于多个固定值之间的选择,比较简洁。- 若需要根据范围或条件进行选择判断,应使用其他结构(如
if-else
语句)。
需要注意以下几点:
表达式
只能是整型或字符型(C99以后版本支持整型常量表达式)。- 各个
case
的值必须是唯一且与表达式类型兼容。 break
语句的使用非常重要,确保每个代码块执行完毕后正确退出。
总结:
switch
语句是C语言中用于多分支选择的结构,通过比较表达式的值选择不同的代码块执行。它具有简洁、清晰的特点,适用于多个固定值之间的选择情况。在使用switch
语句时需要注意合理布置case
的值和正确使用break
语句。
部分内容参考于C语言中文网;一个很不错的编程网站,建议大家多看看。