c语言switch case语句例子(3个经典例子)
C语言中的 switch case 语句是一种多分支选择结构,它可以根据一个变量或表达式的不同取值,执行不同的代码块,这种结构在需要处理多个可能的情况时特别有用。相比于使用多个 if else 语句,switch case 通常更加清晰和高效。
switch case 语句的基本格式如下:
switch (expression) { case constant1: // 代码块 1 break; case constant2: // 代码块 2 break; ... default: // 默认代码块 break; }
在这个结构中,expression 是要被评估的表达式,通常是一个变量或者返回整数值的表达式。每个 case 后面跟着一个常量值,如果 expression 的值与某个 case 的常量相匹配,就会执行该 case 下的代码块。default 是可选的,如果所有的 case 都不匹配,就会执行 default 下的代码块。
让我们通过一个具体的例子来深入理解 switch case 的使用:
#include <stdio.h> int main() { int day; printf("请输入一个 1 到 7 之间的数字:"); scanf("%d", &day); switch (day) { case 1: printf("星期一\n"); break; case 2: printf("星期二\n"); break; case 3: printf("星期三\n"); break; case 4: printf("星期四\n"); break; case 5: printf("星期五\n"); break; case 6: printf("星期六\n"); break; case 7: printf("星期日\n"); break; default: printf("无效的输入!请输入 1 到 7 之间的数字。\n"); } return 0; }
在这个例子中,程序要求用户输入一个 1 到 7 之间的数字,然后使用 switch 语句来判断这个数字对应的星期几。如果用户输入的数字不在 1 到 7 之间,程序会执行 default 块中的语句,提示输入无效。
值得注意的是 break 语句的重要性。如果我们忘记在每个 case 后面加上 break,程序会继续执行下一个 case 中的语句,直到遇到 break 或者 switch 结束。这种特性有时可以用来实现多个 case 共享同一段代码的效果。例如:
#include <stdio.h> int main() { char grade; printf("请输入您的成绩(A、B、C、D 或 F):"); scanf(" %c", &grade); switch (grade) { case 'A': case 'a': printf("优秀!\n"); break; case 'B': case 'b': printf("良好!\n"); break; case 'C': case 'c': printf("中等!\n"); break; case 'D': case 'd': printf("及格!\n"); break; case 'F': case 'f': printf("不及格!\n"); break; default: printf("无效的成绩输入!\n"); } return 0; }
在这个例子中,我们允许用户输入大写或小写字母来表示成绩。通过让相邻的 case 共享同一段代码,我们简化了程序结构,使其更加简洁。
switch case 语句还有一些高级用法,例如,我们可以在 case 中定义变量和使用复合语句。不过,如果要在 case 中定义变量,需要将整个 case 的内容用花括号括起来,形成一个复合语句。例如:
#include <stdio.h> int main() { int choice; printf("请选择操作:\n1. 计算圆的面积\n2. 计算正方形的面积\n"); scanf("%d", &choice); switch (choice) { case 1: { float radius, area; printf("请输入圆的半径:"); scanf("%f", &radius); area = 3.14159 * radius * radius; printf("圆的面积是:%.2f\n", area); break; } case 2: { float side, area; printf("请输入正方形的边长:"); scanf("%f", &side); area = side * side; printf("正方形的面积是:%.2f\n", area); break; } default: printf("无效的选择!\n"); } return 0; }
这个例子展示了如何在 switch case 中使用更复杂的逻辑,包括定义变量、进行计算和输出结果。
总的来说,switch case 语句是一个非常有用的控制结构,特别适合处理多选项的情况。switch case 可以使代码更加清晰、易读,并且在某些情况下比等价的 if else 结构更加高效。在实际编程中,合理使用 switch case 可以大大提高代码的可读性和维护性。