admin 管理员组

文章数量: 1086019


2024年3月9日发(作者:structure and infrastructure engineering)

c语言switch case语句的用法

C语言switch case语句的用法

在C语言中,switch case语句是用于在多个选项中选择一个执行的结构。它可以提高代码的可读性和简洁性,特别适用于对一个变量的不同取值进行不同的操作。

以下是switch case语句的一些用法和详细讲解:

基本用法

switch (expression) {

case value1:

//

如果expression的值等于value1时执行的代码

break;

case value2:

//

如果expression的值等于value2时执行的代码

break;

...

default:

//

如果expression的值不匹配任何case时执行的默认代码

break;

}

• expression是switch语句括号中的表达式,它的值将用于与每个case后的常量值进行比较。

• case后面的value1, value2等表示预期的常量值,当expression的值与某个case的常量值相等时,对应的代码将会被执行。

• default代表当expression的值不匹配任何case的常量值时,会执行后面跟着的代码块。

• break用于在每个case块的最后,用来退出switch case语句。

多条件判断

switch (expression) {

case value1:

case value2:

//

如果expression的值等于value1或value2时执行的代码

break;

case value3:

//

如果expression的值等于value3时执行的代码

break;

...

default:

//

如果expression的值不匹配任何case时执行的默认代码

break;

}

• 当有多个case的常量值相同时,可以将它们写在一起,省略每个case后面的break。

• 如果expression的值等于其中任何一个常量值,对应的代码块将会被执行。

• 可以在相邻的case中写入相同的代码块,实现多个条件满足时执行相同的操作。

贯穿执行

switch (expression) {

case value1:

//

如果expression的值等于value1时执行的代码

case value2:

//

如果expression的值等于value1或value2时执行的代码

break;

case value3:

//

如果expression的值等于value3时执行的代码

break;

...

default:

//

如果expression的值不匹配任何case时执行的默认代码

break;

}

• 在case块中不使用break时,将会发生贯穿执行。

• 如果expression的值与某个case的常量值匹配,对应的代码将会被执行,然后继续执行后续case中的代码。

• 这种用法需要小心,确保在需要贯穿执行时使用。

枚举类型

enum Color {

RED,

GREEN,

BLUE

};

enum Color color = GREEN;

switch (color) {

case RED:

//

如果color的值等于RED时执行的代码

break;

case GREEN:

//

如果color的值等于GREEN时执行的代码

break;

case BLUE:

//

如果color的值等于BLUE时执行的代码

break;

default:

//

如果color的值不匹配任何case时执行的默认代码

break;

}

• switch case语句也可以用于处理枚举类型。

• 枚举类型的值可以作为case后的常量值进行比较,以执行相应的操作。

以上是几种常见的switch case语句的用法和详细讲解。根据具体的需求,可以灵活运用这些用法,提高代码的可读性和简洁性。

字符类型

char grade = 'B';

switch (grade) {

case 'A':

//

如果grade的值等于'A'时执行的代码

break;

case 'B':

//

如果grade的值等于'B'时执行的代码

break;

case 'C':

//

如果grade的值等于'C'时执行的代码

break;

default:

//

如果grade的值不匹配任何case时执行的默认代码

break;

}

• switch case语句可以用于处理字符类型。

• 字符类型的值可以用单引号括起来,作为case后的常量值进行比较。

整型表达式

int num = 10;

switch (num % 2) {

case 0:

//

如果num除以2的余数等于0时执行的代码

printf("%d是偶数n", num);

break;

case 1:

//

如果num除以2的余数等于1时执行的代码

printf("%d是奇数n", num);

break;

default:

// num除以2的余数为负数时执行的默认代码

printf("%d不是有效整数n", num);

break;

}

• switch case语句可以根据整型表达式的结果进行判断。

• 在switch括号中可以使用整型表达式,如取余操作(num % 2)。

• case后的常量值可以是整数,用来匹配整型表达式的结果。

常量表达式

#define PI

#define AREA(r) PI * r * r

float radius = ;

float area;

switch (1) {

case (int)(AREA(radius) > 50):

//

如果圆的面积大于50时执行的代码

area = AREA(radius);

printf("圆的面积为%fn", area);

break;

case 1:

//

如果圆的面积不大于50时执行的代码

printf("圆的面积不大于50n");

break;

default:

//

没有其他情况

break;

}

• switch case语句的case后的常量值可以是常量表达式。

• 在常量表达式中可以使用宏定义或其他预处理指令定义的常量。

关键字和变量

int option = 1;

switch (option) {

case true:

//

如果option的值为true时执行的代码

break;

case false:

//

如果option的值为false时执行的代码

break;

default:

//

如果option的值不匹配任何case时执行的默认代码

break;

}

• switch case语句的case后的常量值可以是关键字或变量。

• 可以根据关键字或变量的值来判断执行相应的代码块。

以上是关于switch case语句的一些用法和详细讲解。通过熟练掌握这些用法,可以更好地应用switch case语句,使代码更具有可读性和灵活性。


本文标签: 执行 代码 常量 语句 用法