C switch 语句

一池春水

C switch 语句

switch 语句是一种有限制的控制流语句,它用于根据表达式的值执行不同的代码块。

一个 switch 语句允许测试一个变量等于多个值时的情况,每个值称为一个 case,且被测试的变量会对每个 switch case 进行检查。

语法

C 语言中 switch 语句的语法:

switch(expression){
    case constant-expression  :
       statement(s);
       break; /* 可选的 */
    case constant-expression  :
       statement(s);
       break; /* 可选的 */
  
    /* 您可以有任意数量的 case 语句 */
    default : /* 可选的 */
       statement(s);
}

switch 语句说明:

  • switch 后面的表达式的值将会与每个 case 后面的常量值进行比较,直到找到匹配的值或者执行到 default(如果存在)。
  • 如果找到匹配的值,将执行相应 case 后面的代码块,然后跳出 switch 语句。
  • 如果没有匹配的值,并且有 default,则执行 default 后面的代码块。
  • 如果没有匹配的值,并且没有 default,则跳过整个 switch 语句直到结束。

switch 语句必须遵循下面的规则:

  • switch 表达式的类型: switch 语句中的表达式必须是整数类型(char、short、int或枚举),或者是能够隐式转换为整数类型的表达式。

  • case 标签的唯一性: 在 switch 语句中,每个 case 标签必须是唯一的,不能有重复的值。

  • 默认情况的可选性: switch 语句中的 default 标签是可选的。如果没有匹配的 case 标签,则会执行 default 标签下的代码块(如果存在)。

  • case 标签中的常量值: case 标签中只能是常量值,不能是变量或表达式。

  • case 标签的顺序: switch 语句中的 case 标签的顺序并不重要,它们可以按照任意顺序编写。程序会按照 case 标签出现的顺序依次匹配。

  • break 语句的使用: 在每个 case 标签的代码块结束处通常需要使用 break 语句来终止 switch 语句的执行。如果没有 break 语句,程序将会继续执行下一个 case 标签中的代码,直到遇到 break 语句或 switch 语句结束。

  • switch 语句的嵌套: switch 语句可以嵌套在其他 switch 语句中,但是需要注意代码的可读性和复杂性。

  • case 标签和表达式的范围: switch 语句的 case 标签可以是整数常量表达式,但不能是浮点数或字符串。

流程图

C switch 语句
#include <stdio.h>
 
int main ()
{
   /* 局部变量定义 */
   char grade = 'B';
 
   switch(grade)
   {
   case 'A' :
      printf("很棒!\n" );
      break;
   case 'B' :
   case 'C' :
      printf("做得好\n" );
      break;
   case 'D' :
      printf("您通过了\n" );
      break;
   case 'F' :
      printf("最好再试一下\n" );
      break;
   default :
      printf("无效的成绩\n" );
   }
   printf("您的成绩是 %c\n", grade );
 
   return 0;
}

当上面的代码被编译和执行时,它会产生下列结果:

做得好
您的成绩是 B
版权声明:本页面内容旨在传播知识,为用户自行发布,若有侵权等问题请及时与本网联系,我们将第一时间处理。E-mail:284563525@qq.com

目录[+]

取消
微信二维码
微信二维码
支付宝二维码