C语言switch

合集下载

c语言 switch用法

c语言 switch用法

c语言 switch用法(原创版)目录1.C 语言中的 switch 用法概述2.switch 语句的基本结构3.switch 语句的执行流程4.switch 语句的注意事项5.switch 语句的实际应用示例正文一、C 语言中的 switch 用法概述switch 语句是 C 语言中一种多分支选择结构,它允许根据一个表达式的值来执行不同的代码块。

switch 语句可以提高代码的可读性和可维护性,特别是在需要根据不同条件执行不同操作的情况下。

二、switch 语句的基本结构switch 语句的基本结构如下:```switch (expression) {case constant1:// code to be executed if expression is equal to constant1;break;case constant2:// code to be executed if expression is equal toconstant2;break;// you can have any number of case statementscase constantN:// code to be executed if expression is equal to constantN;break;default:// code to be executed if expression doesn"t match any constant;}```三、switch 语句的执行流程当程序执行到 switch 语句时,首先计算表达式的值。

然后,根据表达式的值,程序会跳转到对应的 case 标签后的代码块。

如果表达式的值与某个 case 标签的常量相等,则执行该代码块,并在代码块末尾使用break 语句退出 switch 语句。

如果没有匹配到任何 case 标签,则执行 default 标签后的代码块(如果提供了 default 标签)。

C语言switch语句

C语言switch语句

input 10 characters: Reold 123? blank=1, digit=3, other=6
blank ++;
break;
case '0' : case '1' : case '2' : case '3‘:
case '4' : case '5' : case '6' : case '7' :
假(0) 表达式=常量表达式n?
假(0)
无break语句
有break语句
真(非0)
语句序列2
break
无break语句
真(非0)
有break语句
语句序列n
break
无break语句 语句序列n+1
说明:
04:06:15
switch语句不等同于if语句:
只进行值的相等性 的检查,不是逻辑判断!
1. switch只能进行值的相等性的检查. 2. if语句不但可以进行相等性的检查, 还可以计算关 系表达式或逻辑表达式,进行逻辑判断的真假.
printf("十进制数: %d\n", ch-'0');
break;
04:06:16
ASCII值: ‘0’ 48 ‘A’ 65 ‘a” 97
case 'A': case 'B': case 'C': case 'D': case 'E': case 'F': printf("十进制数: %d\n", ch-55);

switch语句简单例子c语言

switch语句简单例子c语言

switch语句简单例子c语言嘿,朋友!你知道吗?在 C 语言里,switch 语句那可真是个神奇的家伙!就好比你在一个超级大的游乐场里,有好多不同的游乐项目,而 switch 语句就像是那个决定你能去玩哪个项目的神奇钥匙。

比如说,咱们要根据不同的星期几来决定做不同的事情。

周一到周五,那得老老实实上学上班;周六呢,就可以尽情玩耍;周日呢,得收拾收拾准备新的一周。

这时候,switch 语句就派上用场啦!```cint day;printf("请输入星期几(1-7): ");scanf("%d", &day);switch(day) {case 1:printf("周一啦,努力奋斗!");break;case 2:printf("周二,继续加油!");break;case 3:printf("周三,坚持就是胜利!"); break;case 4:printf("周四,曙光就在前方!"); break;case 5:printf("周五,马上就要解放啦!"); break;case 6:printf("周六,嗨起来!"); break;case 7:printf("周日,收收心咯!"); break;default:printf("亲,你输入的不对哟!"); }```你看,这不就通过 switch 语句把不同的情况都处理得妥妥当当啦?再比如说,你要根据不同的成绩等级来给出不同的评价。

A 级优秀,B 级良好,C 级中等,D 级及格,E 级不及格。

```cchar grade;printf("请输入成绩等级(A-E): ");scanf(" %c", &grade);switch(grade) {case 'A':printf("太棒啦,你是优秀的!");break;case 'B':printf("不错哦,继续保持!");break;case 'C':printf("还可以再加油哟!");break;case 'D':printf("要加把劲啦,争取更好!");break;case 'E':printf("哎呀,要好好努力啦!");break;default:printf("亲,你输入的不对哟!");}```是不是觉得 switch 语句超级实用?朋友,反正我觉得 switch 语句在 C 语言里简直就是个宝藏工具,能让我们的代码变得清晰又高效!。

switch在c语言中的用法

switch在c语言中的用法

switch在c语言中的用法在C语言中,switch语句用于执行多个不同的代码块,根据给定表达式的值来选择要执行的代码块。

它是一种比使用多个if语句更简洁的方式,特别适用于需要对一个变量进行多个值的比较的情况。

switch语句的一般语法结构如下:cCopy codeswitch (expression){case constant1:// 代码块1break;case constant2:// 代码块2break;case constant3:// 代码块3break;// ...default:// 默认代码块}以下是对switch语句中各个部分的详细说明:expression:表达式是一个用于比较的值,可以是整数、字符或枚举类型。

这个值将与每个case后面的常量进行比较。

case constant1::case标签后面是一个常量或常量表达式,它用于与表达式的值进行比较。

如果表达式的值与某个case标签后面的常量匹配,将执行与该case标签关联的代码块。

多个case标签可以共享同一个代码块。

break;:break语句用于在执行完一个case标签关联的代码块后跳出switch语句。

如果省略break语句,程序将继续执行下一个case标签关联的代码块,这被称为"fall-through"(穿透)行为。

default::default标签是可选的,用于处理没有匹配到任何case标签的情况。

如果所有的case标签都不匹配,将执行default标签关联的代码块。

default标签可以放在switch语句中的任意位置,但通常放在最后。

需要注意以下几点:expression的类型必须与case标签后的常量类型兼容。

case标签后的常量必须是编译时可确定的常量。

break语句在每个case块的末尾是可选的,但通常需要在每个case块的末尾使用break语句,以确保在执行完一个case块后跳出switch语句,而不继续执行下一个case块。

c语言switch枚举类型

c语言switch枚举类型

c语言switch枚举类型C语言中的switch语句可以用于处理枚举类型。

枚举类型是一种用户定义的数据类型,它允许程序员定义一个变量,该变量只能取枚举中列举出的值之一。

在switch语句中使用枚举类型可以使代码更加清晰和易读。

当我们在switch语句中使用枚举类型时,每个case标签应该对应枚举类型中的一个枚举值。

例如,假设我们有一个枚举类型定义如下:c.enum Weekday { Monday, Tuesday, Wednesday, Thursday, Friday };我们可以在switch语句中使用这个枚举类型来编写代码,如下所示:c.enum Weekday today = Monday;switch (today) {。

case Monday:printf("Today is Monday");break;case Tuesday:printf("Today is Tuesday"); break;case Wednesday:printf("Today is Wednesday"); break;case Thursday:printf("Today is Thursday");break;case Friday:printf("Today is Friday");break;default:printf("It's a weekend!");break;}。

在这个例子中,我们定义了一个Weekday枚举类型的变量today,并在switch语句中根据不同的枚举值进行了不同的处理。

如果today的值为Monday,那么程序会执行第一个case标签下的代码,依此类推。

需要注意的是,switch语句中的case标签必须是枚举类型的枚举值,而且每个枚举值在switch语句中应该只出现一次。

switch语句用法c语言

switch语句用法c语言

C语言中switch语句的用法总结一、switch语句的基本概念switch语句是一种多分支选择语句,它可以根据一个表达式的值,选择执行不同的代码块。

switch语句的一般形式如下:switch (expression) {case constant-expression1 :statement(s);break; /* 可选的 */case constant-expression2 :statement(s);break; /* 可选的 *//* 您可以有任意数量的 case 语句 */default:/* 可选的 */statement(s);}其中,expression是一个整型或枚举类型的表达式,它的值会与每个case后面的常量表达式进行比较,如果相等,则执行该case后面的语句,直到遇到break语句或switch语句结束为止。

如果没有任何一个case匹配,则执行default后面的语句,如果没有default,则不执行任何语句。

二、switch语句的使用规则在使用switch语句时,需要注意以下几个规则:switch语句中的expression必须是一个整型或枚举类型的表达式,不能是浮点型、字符串型或布尔型。

case后面的constant-expression必须是一个常量或字面量,不能是变量或表达式,且必须与expression具有相同的数据类型。

case后面的常量表达式不能重复,否则会导致编译错误。

case和default只起标号的作用,它们本身不控制程序流程,只有break语句才能跳出switch语句。

不是每一个case都需要包含break语句,如果没有break语句,则程序会继续执行后续的case,直到遇到break为止,这称为case穿透现象。

default可以省略,也可以放在任何位置,但建议放在最后,以便处理其他情况。

三、switch语句的优缺点switch语句相比于if-else语句,有以下几个优点:switch语句结构清晰,易于阅读和理解。

c语言 switch语句的用法

c语言 switch语句的用法

C语言中switch语句的用法一、概述C语言中的switch语句是一种多分支选择结构,它可以根据不同的情况执行不同的代码块。

switch语句通常用于替代多个if-else语句,使程序更加清晰和简洁。

二、基本语法switch语句的基本语法格式如下:```switch (表达式){case 值1:语句序列1;break;case 值2:语句序列2;break;...default:默认语句序列;}```其中,表达式是一个常量表达式,值1、值2等为case标签,可以是整数、字符或枚举类型的常量。

三、执行流程在执行switch语句时,程序会先计算表达式的值,然后与每个case 标签的值进行比较,如果找到值相等的case标签,就会执行相应的语句序列,并且遇到break时跳出switch语句;如果没有找到匹配的case标签,则执行default语句序列。

若没有default标签,程序将跳过switch语句继续执行下面的代码。

四、示例下面是一个简单的示例,展示了switch语句的用法:```c#include <stdio.h>int m本人n(){int day = 3;switch (day){case 1:printf("Monday\n");break;case 2:printf("Tuesday\n");break;case 3:printf("Wednesday\n");break;default:printf("Other\n");}return 0;}```上面的示例中,根据变量day的值执行不同的代码块,输出星期三。

五、注意事项1. case标签的值必须是一个常量表达式,不能是变量或表达式。

2. 每个case标签后面的语句序列都需要跟上break语句,否则会继续执行下一个case标签的语句序列。

3. default标签是可选的,用于处理除case标签外的其他情况。

c语言字符串的swich语句

c语言字符串的swich语句

C语言是一种十分经典的编程语言,而对于初学者来说,学习C语言中的字符串处理以及条件语句是至关重要的。

在C语言中,我们经常会使用到switch语句来进行条件判断,而本文将重点探讨C语言中的字符串switch语句的用法和注意事项。

1. 什么是switch语句在C语言中,switch语句是一种用于多重条件判断的语句。

它可以根据表达式的值,从几个常数值中选出一个执行。

switch语句的基本结构如下:```cswitch (表达式){case 常量1:语句序列1;break;case 常量2:语句序列2;break;...default:语句序列n;```在这个结构中,表达式可以是整数或字符型,常量必须是整数或字符型的常量表达式,并且在同一个switch语句中,各个case后面的常量值不能相等。

当表达式的值和某个case后面的常量值相等时,从该case开始的语句序列开始执行,直到遇到break语句或switch语句结束。

如果所有的case后面的常量值都不等于表达式的值,那么将执行default后面的语句序列。

2. 字符串switch语句的使用在C语言中,使用字符串作为switch语句的表达式是不被允许的,这是因为C语言中的switch语句只能对整数或字符型的表达式进行判断,而不支持对字符串进行判断。

但是,我们可以通过其他方法来实现对字符串的条件判断,比如使用if语句来代替switch语句,或者使用哈希表来进行字符串的映射和匹配。

下面将分别介绍这两种方法的实现过程。

3. 使用if语句代替switch语句如果我们需要对字符串进行条件判断,可以使用if语句来代替switch语句。

下面是一个简单的示例代码:```c#include <stdio.h>#include <string.h>int m本人n(){char str[10];scanf("s", str);if (strcmp(str, "apple") == 0){printf("It's an apple.\n");}else if (strcmp(str, "banana") == 0) {printf("It's a banana.\n");}else{printf("Unknown fruit.\n");}return 0;}```在这段代码中,我们使用了strcmp函数来比较字符串,根据不同的字符串输出不同的结果。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

§9.8 switch 的应用
例子:如表所示是学生的等级成绩情况。 例子:如表所示是学生的等级成绩情况。 表 学生的等级成绩 分数成绩 大于或等于90 大于或等于90 小于90但大于或等于 小于90但大于或等于80 但大于或等于80 小于80但大于或等于 小于80但大于或等于70 但大于或等于70 小于70但大于或等于 小于70但大于或等于60 但大于或等于60 小于60 小于60 等级成绩 A B C D E
§9.5 default 关键字
在一个 switch 语句中可以采用任意顺序来包含任意数目 标签。但是, 的 case 标签。但是,如果表达式的值与所有 case 值都不 匹配,那么将不执行任何语句, default。 匹配,那么将不执行任何语句,除非遇到关键字 default。关 是可选的, if键字 default 是可选的,并且它与 if-else 链中的最后一 的作用相同。 个 else 的作用相同。
§10.6 break 关键字 10.
一旦通过 switch 语句确定了入口点,所有进一步的 语句确定了入口点, case 赋值都会被忽略,并且,除非遇到关键字 break,否则 赋值都会被忽略,并且, break, 执行将一直持续到复合语句结束, 执行将一直持续到复合语句结束,这就是采用 break 语句的 原因, 的结束, 原因,它将标识特定 case 的结束,并使得立即退出 switch 语句,因此, 语句,因此,就像关键字 case 标识复合语句中可以存在的起 始点一样, 语句将确定终止点。 始点一样,break 语句将确定终止点。如果省略了 break 语 值后的所有情况( 句,那么匹配的 case 值后的所有情况(包括 default 情 都会被执行。 况)都会被执行。
§9.3 switchswitchcase 执 行流程图
1
1
break
2
2
break
3பைடு நூலகம்
3
break
n
n
break
default
break
§9.4 switch 和 case 关键字
在 switch-case 语句中有4个新的关键字:switch、 switch语句中有4个新的关键字:switch、 case、 case、default 和 break,下面分别给予介绍。 break,下面分别给予介绍。 swithc语句的开始。 关键字 switch 标识 swithc-case 语句的开始。该关 键字后的圆括号内的整型表达式将得到赋值, 键字后的圆括号内的整型表达式将得到赋值,然后将该表达式 的结果与复合语句内包含的各种可以的值依次进行比较。 依次进行比较 的结果与复合语句内包含的各种可以的值依次进行比较。 swith 语句中的表达式必须被指定为整数结果值,否则将会出 语句中的表达式必须被指定为整数结果值, 现编译错误。在 switch-case 语句内,关键字 case 被用 现编译错误。 switch语句内, 表达式的值进行比较的每个值。 来标识或标记与 switch 表达式的值进行比较的每个值。 switch 表达式的值与这些 case 值依次进行比较,直到 值依次进行比较, 找到匹配的值。当找到匹配值时, 找到匹配的值。当找到匹配值时,执行将从紧跟着该匹配值的 语句开始,因此,如下所示, 语句开始,因此,如下所示,表达式的值决定了在 switch 语 句中执行实际开始的位置: 句中执行实际开始的位置:
§9.2 switch-case 常规书写格式 switchswitch(整型表达式) switch(整型表达式) 复合语句开始 { 以冒号结束 缩进 case 常量1: 常量1: 再次缩进 语句系列1; 语句系列1; [break;] break;] 以冒号结束 case 常量2: 常量2: 语句系列2; 语句系列2; [break;] break;] . . 以冒号结束 case 常量n: 常量n: 语句系列n; 语句系列n; break;] [break;] 缩进 [default:] default:] 以冒号结束 [语句 n+1;] n+1; } switch和复合语句结束 switch和复合语句结束
printf("您执行的是修改密码操作!\n"); printf("您执行的是修改密码操作! 您执行的是修改密码操作 //跳出switch语句 //跳出 跳出switch语句 break; printf("您执行的是转帐操作!\n"); printf("您执行的是转帐操作 您执行的是转帐操作! break; //跳出switch语句 //跳出 跳出switch语句 printf("您执行的是存款操作 printf("您执行的是存款操作!\n"); 您执行的是存款操作! break; //跳出switch语句 //跳出 跳出switch语句 printf("您执行的是取款操作!\n"); printf("您执行的是取款操作 您执行的是取款操作! break; //跳出switch语句 //跳出 跳出switch语句 printf("您执行的查询余额操作!\n"); printf("您执行的查询余额操作 您执行的查询余额操作! break; //跳出switch语句 //跳出 跳出switch语句 printf("系统退出!\n"); printf("系统退出! 系统退出 break; //跳出switch语句 //跳出 跳出switch语句
//程序片段:输入月份,输出相应的天数(switch 结构) //程序片段 输入月份,输出相应的天数( 程序片段: 结构) //完整程序请参考 ex09_04.c //完整程序请参考
//求相应月份的天数 //求相应月份的天数 switch(month) { case 1: case 3: case 5: case 7: case 8: case 10: case 12: days = 31; break; case 2: days = 28; break; case 4: case 6: case 9: case 11: days = 31; break; default: days= 0; }
§9.7 多个 case 值引用同一组语句
在编写 switch 语句时,可以使用多个 case 值来引用 语句时, 同一组语句;default标签是可选的 标签是可选的。 同一组语句;default标签是可选的。
//程序片段:输入月份,输出相应的天数(if-else链) //程序片段 输入月份,输出相应的天数(if-else链 程序片段: //完整程序请参考 ex09_03.c //完整程序请参考
C语言程序设计
第九课 switch-case 多分支开路语句 switch-
§9.1 switch-case 语句 switch在编写应用程序时, 在编写应用程序时,在必须从很多可以的选项中选择一组指 令的地方, if令的地方,可以使用 if-else 链。在将一个整数表达式的值 与特定的值进行比较时, switch与特定的值进行比较时,可以使用 switch-case 语句来替代 if-else 链。switch-case 语句的常规格式如下: ifswitch语句的常规格式如下: switch(整型表达式 switch(整型表达式) 整型表达式) { case 常量1: 语句系列1; [break;] 常量1: 语句系列1; case 常量2: 语句系列2; [break;] 常量2: 语句系列2; . . case 常量n: 语句系列n; [break;] 常量n: 语句系列n; [default:] [语句 n+1;] n+1; }
//求相应月份的天数 //求相应月份的天数 if(month==1 || month==3 || month==5 || month==7 || month==8 || month==10 || month==12) days = 31; else if(month==2) days = 28; else if(month==4 || month==6 || month==9 || month==11) days = 30; else days = 0;
//模拟ATM机菜单系统程序片段(完整程序请参考 ex09_01.c) //模拟 模拟ATM机菜单系统程序片段 机菜单系统程序片段( ex09_01.c) //执行各个分支 //执行各个分支 switch( key ) { case 1: printf("您执行的是修改密码操作! printf("您执行的是修改密码操作!\n"); 您执行的是修改密码操作 case 2: printf("您执行的是转帐操作! printf("您执行的是转帐操作!\n"); 您执行的是转帐操作 case 3: printf("您执行的是存款操作! printf("您执行的是存款操作!\n"); 您执行的是存款操作 case 4: printf("您执行的是取款操作! printf("您执行的是取款操作!\n"); 您执行的是取款操作 case 5: printf("您执行的查询余额操作! printf("您执行的查询余额操作!\n"); 您执行的查询余额操作 case 6: printf("系统退出! printf("系统退出!\n"); 系统退出 default: printf("您选择了一个错误的操作! printf("您选择了一个错误的操作!\n"); 您选择了一个错误的操作 }
/* 执行下列程序(ts09_01.c, 执行下列程序(ts09_01.c,输入为 1 时运行结果是_____, 时运行结果是_____, 时运行结果是_____。 输入为 2 时运行结果是_____。*/ #include <stdio.h> void main() { int k; scanf("%d",&k); switch(k) { case 1: printf("%d",k++); break; case 2: printf("%d",k++); case 3: printf("%d",k++); break; case 4: printf("%d",k++); default:printf("Full!\ default:printf("Full!\n"); } }
相关文档
最新文档