C语言switch语句的用法有哪些
C语言中的switch语句是一种多分支选择结构,它根据一个表达式的值来选择执行相应的代码块,switch语句可以简化多个if-else语句,使代码更加简洁易读,本文将详细介绍C语言switch语句的用法,包括语法、使用方法和注意事项。
switch语句的语法
switch (表达式) { case 常量1: // 当表达式的值等于常量1时执行的代码 break; case 常量2: // 当表达式的值等于常量2时执行的代码 break; ... default: // 当表达式的值不等于任何常量时执行的代码 }
switch语句的使用方法
1、使用整型表达式作为switch的条件,可以根据变量的值来执行不同的操作。
include <stdio.h> int main() { int num = 2; switch (num) { case 1: printf("数字是1 "); break; case 2: printf("数字是2 "); break; case 3: printf("数字是3 "); break; default: printf("数字不是1、2、3 "); } return 0; }
2、使用字符型表达式作为switch的条件,可以根据输入的字符来执行不同的操作。
include <stdio.h> int main() { char ch = 'A'; switch (ch) { case 'A': printf("字符是A "); break; case 'B': printf("字符是B "); break; case 'C': printf("字符是C "); break; default: printf("字符不是A、B、C "); } return 0; }
3、在每个case后面添加break语句,用于跳出switch结构,如果没有break语句,程序会继续执行下一个case的代码,直到遇到break或者switch结构结束,如果所有case都不匹配,程序会执行default后面的代码,从C11标准开始,如果没有default语句,程序会继续执行下一个case的代码,直到遇到break或者switch结构结束,这种行为被称为"fallthrough"。
4、switch语句中的表达式必须是整型、字符型或枚举类型,不能直接使用浮点型或字符串类型作为条件,可以将浮点型或字符串类型的值与整型的某个范围进行比较,以达到类似switch的效果,可以使用以下方法将浮点型转换为整型:(int)(float_value + 0.5),同样,可以使用strcmp函数将字符串类型的值与另一个字符串进行比较,这种方法可能会导致精度损失,因此在实际编程中应谨慎使用。
注意事项
1、switch语句中的case标签必须是常量表达式,不能使用变量名或表达式,因为在编译时,需要确定所有可能的情况,而变量的值是在运行时才能确定的,使用变量名或表达式作为case标签会导致编译错误,可以在switch结构外部定义一个数组或枚举类型,然后将其元素作为case标签,这样,数组或枚举类型的元素可以在运行时改变,从而实现类似于动态选择的功能。
include <stdio.h> include <string.h> enum Weekdays { Monday = 1, Tuesday, Wednesday, Thursday, Friday }; // 枚举类型表示星期几的枚举值为整型常量1到7之间的值加上星期几的常量表示(如Monday表示1)后赋给枚举项,这样就可以用枚举项作为case标签了,注意这里使用了枚举类型而不是普通的整型常量,枚举类型的好处是可以提高代码的安全性和可读性,还可以使用switch语句处理枚举类型的数据,Weekdays day = Monday; switch (day) ...; // 也可以使用switch (day) ...; 这样的方式来处理枚举类型的数据。
原创文章,作者:K-seo,如若转载,请注明出处:https://www.kdun.cn/ask/136672.html