C语言switch语句中default用法(附带实例)
在C语言中,switch 语句是一种强大的控制流结构,用于根据表达式的值执行不同的代码块。而 default 子句则是 switch 语句中的一个特殊部分,它为我们提供了处理所有未明确匹配的情况的机会。
switch 语句的基本结构如下:
switch (expression) { case constant1: // 代码块 1 break; case constant2: // 代码块 2 break; // 更多 case 语句 default: // 默认代码块 }
default 子句在 switch 语句中扮演着“兜底”的角色,当 switch 表达式的值与所有的 case 常量都不匹配时,程序将执行 default 子句中的代码,这使得 default 成为处理意外或未预料情况的理想选择。
让我们通过一个简单的例子来说明 default 的作用:
#include <stdio.h> int main() { int day = 8; 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("无效的日期\n"); } return 0; }
在这个例子中,如果 day 的值是 1 到 7 之间的任何数字,程序将打印对应的星期几。但是,如果 day 的值不在这个范围内(比如我们设置的 8),default 子句就会被执行,打印出“无效的日期”。
运行这段代码,我们会得到以下输出:
无效的日期
default 子句的位置在 switch 语句中是灵活的。虽然通常将它放在所有 case 语句之后,但实际上它可以放在 switch 语句的任何位置。无论它的位置如何,只有在所有 case 都不匹配时才会执行 default 子句。
值得注意的是,default 子句是可选的。如果我们省略了 default 子句,且 switch 表达式的值与所有的 case 常量都不匹配,那么程序将简单地跳过整个 switch 语句,继续执行 switch 语句之后的代码。
default 子句的另一个重要用途是在处理枚举类型时捕获未知值。例如:
#include <stdio.h> enum Color { RED, GREEN, BLUE }; int main() { enum Color c = 5; // 非法值 switch (c) { case RED: printf("红色\n"); break; case GREEN: printf("绿色\n"); break; case BLUE: printf("蓝色\n"); break; default: printf("未知颜色\n"); } return 0; }
在这个例子中,我们为 c 赋予了一个非法值 5。由于这个值不匹配任何 case,default 子句将被执行,输出“未知颜色”。这种做法可以帮助我们捕获和处理意外的枚举值,提高程序的健壮性。
使用 default 子句时,我们通常不需要在其后添加 break 语句,因为它已经是 switch 语句的最后一个部分。然而,如果出于某种原因你将 default 子句放在其他 case 之前,那么添加 break 就变得必要了,以防止执行继续进入下一个 case。
声明:《C语言系列教程》为本站“54笨鸟”官方原创,由国家机构和地方版权局所签发的权威证书所保护。