文章目录

  • 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 执行过程

它的执行过程是:

  1. 首先计算“表达式”的值,假设为 m。

  2. 从第一个 case 开始,比较“整型数值1”和 m,如果它们相等,就执行冒号后面的所有语句,也就是从“语句1”一直执行到“语句n+1”,而不管后面的 case 是否匹配成功。

  3. 如果“整型数值1”和 m 不相等,就跳过冒号后面的“语句1”,继续比较第二个 case、第三个 case……一旦发现和某个整型数值相等了,就会执行后面所有的语句。假设 m 和“整型数值5”相等,那么就会从“语句5”一直执行到“语句n+1”。

  4. 如果直到最后一个“整型数值n”都没有找到相等的值,那么就执行 default 后的“语句 n+1”。
    需要重点强调的是,当和某个整型数值匹配成功后,会执行该分支以及后面所有分支的语句 。

3 break关键字

break 是C语言中的一个关键字,专门用于跳出 switch 语句。所谓“跳出”,是指一旦遇到 break,就不再执行 switch 中的任何语句,包括当前分支中的语句和其他分支中的语句;也就是说,整个 switch 执行结束了,接着会执行整个 switch 后面的代码。

4 补充说明

最后需要说明的两点是:

  1. 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;//错误,不能包含变量
  1. default 不是必须的。当没有 default 时,如果所有 case 都匹配失败,那么就什么都不执行。

5 C语言的switch case函数总结

C语言中的switch语句是一种多分支选择结构,它可以根据表达式的值选择执行不同的代码块。下面是对switch语句的常见用法和总结:

  1. switch语句的基本语法:
switch (表达式) {case 值1:// 代码块1break;case 值2:// 代码块2break;...default:// 默认代码块}
  • 表达式的值会与各个case后面的值进行比较。
  • 如果某个case的值与表达式的值相等,则执行相应的代码块
  • break语句用于退出switch语句,避免进入其他case中的代码块。
  • 如果没有break语句,程序会继续执行下一个case中的代码块。
  1. 特殊情况:
  • 若某个case的代码块为空,可以省略break语句,控制流会继续执行下一个case中的代码块。
  • 可以使用default关键字来处理未匹配到任何case的情况,默认代码块可选。
  1. switch语句的特点和适用场景:
  • switch语句适用于多个固定值之间的选择,比较简洁。
  • 若需要根据范围或条件进行选择判断,应使用其他结构(如if-else语句)。

需要注意以下几点:

  • 表达式只能是整型或字符型(C99以后版本支持整型常量表达式)。
  • 各个case的值必须是唯一且与表达式类型兼容。
  • break语句的使用非常重要,确保每个代码块执行完毕后正确退出。

总结:
switch语句是C语言中用于多分支选择的结构,通过比较表达式的值选择不同的代码块执行。它具有简洁、清晰的特点,适用于多个固定值之间的选择情况。在使用switch语句时需要注意合理布置case的值和正确使用break语句。

部分内容参考于C语言中文网;一个很不错的编程网站,建议大家多看看。