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的用法举例C语言中Switch的用法举例一、介绍在C语言中,Switch是一种流程控制语句,它可以根据不同的情况选择性地执行不同的代码块。
本文将通过多个实际例子详细讲解Switch的用法。
二、基本语法Switch语句由一个表达式和多个Case标签组成。
表达式的值会与每个Case标签进行比较,如果匹配成功,相应的代码块将被执行。
如果没有匹配成功的Case 标签,则可以使用默认情况(Default)来执行相应代码块。
下面是Switch语句的基本语法:```switch (expression) {case constant1:// 代码块1break;case constant2:// 代码块2break;...default:// 默认代码块}```三、示例1:星期几转换假设我们有一个应用程序需要根据数字转换为对应的星期几名称。
以下是一个实际案例:```c#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之间的数字。
c语言中switch语句的特点
c语言中switch语句的特点
C语言中的switch语句有以下特点:
1. switch语句用于根据一个变量的不同取值来执行不同的代码块。
2. switch语句中的变量只能是整型或字符型。
3. switch语句中的case语句用于定义不同的取值情况,并在匹配
到对应取值时执行相应的代码块。
4. switch语句中的default语句可选,用于处理未匹配到任何case 的情况。
5. switch语句中的各个case的取值必须是固定的常量,不允许使
用变量或表达式。
6. switch语句中的case语句执行后,将继续执行下一个case的代码块,除非使用break语句跳出switch语句。
7. switch语句中可以嵌套使用其他的switch语句。
8. switch语句中的每个case语句可以有多个代码块,使用花括号{}括起来。
9. switch语句不能用于浮点型变量,如果需要根据浮点型变量进行条件判断,可以使用if-else语句。
c语言的switch语句中case后
c语言的switch语句中case后摘要:一、C 语言switch 语句简介1.switch 语句的作用2.switch 语句的语法结构二、switch 语句中case 后的处理1.case 后的值匹配规则2.匹配成功后的执行流程3.匹配失败后的处理三、switch 语句的注意事项1.case 的值必须互不相同2.避免无限循环3.使用break 语句避免穿透正文:C 语言的switch 语句是一种条件分支语句,它可以让程序根据不同的条件执行不同的代码块。
switch 语句的语法结构如下:```cswitch (expression) {case constant1:// 代码块1break;case constant2:// 代码块2break;...case constantN:// 代码块Nbreak;default:// 默认代码块}```在switch 语句中,case 后的值用于与expression 的值进行匹配。
匹配规则如下:1.如果expression 的值为constant1,则执行第一个case 后的代码块;2.如果expression 的值为constant2,则执行第二个case 后的代码块;3.依此类推,直到找到匹配的case。
一旦匹配成功,程序将执行对应的代码块,并在该代码块的最后添加一个break 语句。
break 语句的作用是跳出switch 语句,不再执行后续的case。
如果不使用break 语句,程序将继续执行后续的case,可能导致无限循环。
需要注意的是,case 后的值必须互不相同。
如果存在相同的值,编译器将报错。
此外,为了避免无限循环,每个case 后的代码块末尾都应该添加break 语句。
当程序执行到break 语句时,将跳出switch 语句,不再执行后续的case。
switch的用法C语言
switch的用法C语言一、Switch语句:C语言中的条件分支控制结构在C语言中,Switch语句是一种常用的条件分支控制结构,可以根据一个表达式的值,在多个选项中进行选择执行不同的代码块。
本文将详细介绍Switch语句在C语言中的用法和特点。
1.1 Switch基本语法结构Switch语句的基本结构如下:```switch(expression){case constant-expression:// 执行语句break;case constant-expression:// 执行语句break;...default:// 执行默认操作}```其中,expression是待判断的表达式,constant-expression是不同情况下的常量表达式。
当程序执行到Switch语句时,会逐一比较每个case后面的constant-expression与expression是否相等,如果相等,则执行相应case后面的代码块,并在最后使用break关键字跳出Switch循环。
如果没有任何一个case与expression相等,则执行default后面的代码块(可选)。
1.2 Switch使用范例为了更好地理解和掌握Switch语句,接下来通过一个简单例子来展示其具体用法。
```c#include <stdio.h>int main(){int num;printf("请输入一个数字(1-5):");scanf("%d", &num);switch(num){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;default:printf("输入无效,请输入1-5之间的数字。
c语言中switch 的用法
c语言中switch 的用法一、Switch语句的基本结构及作用在C语言中,Switch语句是一种条件判断的控制流语句,它通过匹配一个表达式的值来执行不同的代码块。
Switch语句可以提供更加简洁和清晰的代码逻辑,尤其适合多个选项需要根据不同情况执行不同操作的场景。
Switch语句通常由以下几个部分组成:1. 选择表达式:也称为条件表达式或者开关量,用于评估并选择要执行的代码块。
2. Case标签:用于与选择表达式进行比较,并决定执行哪个分支。
3. 分支代码块:每个Case标签可对应一段要执行的代码。
4. Default标签(可选):如果选择表达式没有与任何一个Case标签匹配,则会执行Default分支对应的代码。
例如,我们可以使用Switch语句来实现根据用户输入选择性地进行不同操作菜单:```c#include <stdio.h>int main() {int choice;printf("请选择操作:\n");printf("1. 打开文件\n");printf("2. 保存文件\n");printf("3. 关闭文件\n");scanf("%d", &choice);switch(choice) {case 1:// 执行打开文件操作printf("正在打开文件...\n"); break;case 2:// 执行保存文件操作printf("正在保存文件...\n"); break;case 3:// 执行关闭文件操作printf("正在关闭文件...\n"); break;default:printf("无效选择!\n");}return 0;}```二、Switch语句的使用注意事项虽然Switch语句是一种非常实用的条件控制语句,但在使用时也需要注意以下几个方面:1. Case标签的唯一性:每个Case标签必须是唯一的,不能重复出现。
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);
c语言switch语法
1、 switch语句基本用法C语言中,switch语句是一种多分支选择语句,在实际应用中,要在多种情况中选择一种情况,执行某一部分语句。
其使用一般形式如下:switch(表达式){case 常量表达式1:语句块1;break;case 常量表达式2:语句块2;break;……case 常量表达式m:语句块m;break;default:语句块n;break;}使用说明如下:1) 程序执行时,首先计算表达式的值,与case后面的常量表达式值比较,若相等就执行对应部分的语句块,执行完后利用break语句跳出switch分支语句。
若表达式的值与所有的case后的常量表达式均不匹配,则执行default项对应的语句n,执行后跳出switch分支语句。
2) case后面的常量表达式只能是整型、字符型或枚举型常量的一种;各case语句表达式的值各不相同,只起到一个标号作用,用于引导程序找到对应入口。
3) 这里的语句块可以是一条语句,或其它复合语句。
语句块可以不用花括号“{}”。
4) 各个case语句并不是程序执行的终点,通常需要执行break 语句来跳出switch分支语句;若某case语句的语句块被执行后,若其后没有break语句,则顺序执行其它case语句,直到遇到break语句或后面所有case语句全部执行完,再跳出switch分支语句。
5) 多个case可以共用一组执行语句块。
6) 各个case和default出现的先后次序,并不影响执行结果。
7) default语句不是必须的,但建议加上作为默认情况处理项。
8) switch语句仅做相等性检测,不能像if语句那样做关系表达式或逻辑表达式计算,进行逻辑真假判断。
2、 switch语句使用技巧1) 尽量减少case语句数量C语言C89标准指出,一个switch语句至少应支持257个case 语句;而在C99标准中分支个数要求提升至1023个。
在实际编程开发应用中,为了提高程序可读性与执行效率,应尽量减少case语句的数量。
c语言 switch用法
c语言 switch用法C语言 switch用法1. switch语句的基本用法•switch语句用于根据不同的情况执行不同的代码块。
•switch语句通过一个表达式的值来判断执行哪个case中的代码。
•如果表达式的值与某个case的值相等,则执行该case中的代码,直到遇到break语句或者switch语句结束。
•如果表达式的值与所有case的值都不相等,则执行default中的代码(可选)。
2. case语句•case语句用于定义不同的情况,并执行相应的代码块。
•case后面跟着一个常量表达式,表示某种情况。
•当switch的表达式的值与某个case的值相等时,就会执行该case后面的代码。
3. break语句•break语句用于跳出switch语句。
•当某个case的代码执行完毕后,如果没有遇到break语句,将会继续执行后面的case中的代码。
•使用break语句可以避免不必要的代码执行。
4. default语句•default语句可选,用于定义表达式的值与所有case的值都不相等时所执行的代码块。
•default语句一般放在switch语句的最后,用于处理其他未包含在case中的情况。
5. case标签的值的类型•case标签的值可以是整型常量表达式或字符常量表达式。
•不能使用浮点型、字符串或变量作为case标签的值。
6. 多个case标签共用一段代码•多个case标签可以共用一段代码,可以将它们写到一起。
•case标签不遇到break语句时会执行后面所有case中的代码。
7. switch语句的嵌套使用•switch语句可以嵌套使用,即在一个case中可以包含另一个switch语句。
8. 总结•switch语句用于根据不同的情况执行不同的代码块。
•case语句用于定义不同的情况,并执行相应的代码块。
•break语句用于跳出switch语句,避免不必要的代码执行。
•default语句处理其他未包含在case中的情况。
c语言switch的用法注意
c语言switch的用法注意一、switch语句的基本用法在C语言中,switch语句是一种常用的条件控制结构,它根据表达式的值,选择性地执行不同的代码块。
switch语句通常与case标签一起使用,以便根据不同的情况执行相应的操作。
1.1 switch语句的语法switch语句常见的语法形式如下:```cswitch (expression) {case constant-expression:// 代码块break;case constant-expression:// 代码块break;// 其他case分支default:// 默认分支}```其中,`expression` 是需要进行比较的表达式,可以是整型或字符型。
每个`case`后面跟着一个常量表达式,表示某个特定值。
如果`expression`与某个`case`后面的常量表达式相等,则会执行对应的代码块。
如果没有匹配到任何一个`case`,会执行可选的 `default:` 分支。
1.2 switch语句示例以下是一个简单示例,演示了如何使用switch语句判断输入数字对应的季节:```c#include <stdio.h>int main() {int num;printf("请输入月份:");scanf("%d", &num);switch(num) {case 3:case 4:case 5:printf("属于春季\n");break;case 6:case 7:case 8:printf("属于夏季\n");break;case 9:case 10:case 11:printf("属于秋季\n");break;case 12:case 1:case 2:printf("属于冬季\n");break;default :printf("输入无效\n");}return 0;}```运行该程序时,用户需要输入一个表示月份的整数。
c语言中switch的用法
C语言中switch的用法一、简介和基本用法在C语言中,switch语句是一种多分支的条件控制语句,用于根据不同的条件执行不同的代码块。
它是一种比较常见且灵活的流程控制语句,能够提高代码的可读性和可维护性。
switch语句的基本语法如下:switch (表达式) {case值1:// 执行代码块1break;case值2:// 执行代码块2break;case值3:// 执行代码块3break;...default:// 执行默认代码块break;}其中,表达式的值会被依次与各个case后面的值进行比较,如果匹配成功,则执行相应的代码块。
如果没有匹配成功的case,则会执行default后面的代码块(可选)。
每个case后面都必须使用break语句来跳出switch语句,否则程序将会继续执行下一个case中的代码块。
以下是一个简单的示例,演示了switch语句的基本用法:#include <stdio.h>int main() {int num = 2;switch (num) {case 1:printf("数字是1\n");break;case 2:printf("数字是2\n");break;case 3:printf("数字是3\n");break;default:printf("数字不在范围内\n");break;}return 0;}输出结果为:数字是2二、多条件判断switch语句不仅可以通过case后面的常量值进行条件判断,还可以使用表达式或变量作为条件。
这使得switch语句可以处理更复杂的逻辑判断。
例如,下面的示例展示了如何使用switch语句来判断某个年份是平年还是闰年:#include <stdio.h>int main() {int year = 2024;switch (year % 4) {case 0:if (year % 100 == 0) {if (year % 400 == 0) {printf("%d年是闰年\n", year);} else {printf("%d年是平年\n", year);}} else {printf("%d年是闰年\n", year);}break;default:printf("%d年是平年\n", year);break;}return 0;}输出结果为:2024年是闰年三、适用范围switch语句适用于需要根据不同条件执行不同代码块的情况,并且条件的取值是有限且离散的。
c语言字符串的swich语句
c语言字符串的swich语句C语言中,使用switch语句可以根据某个表达式的值来选择执行不同的代码块。
通常情况下,switch语句用于检查某个变量的可能取值,并对每种情况下执行不同的操作。
switch语句的语法如下:switch (expression){case constant_1:code block for constant_1break;case constant_2:code block for constant_2break;...default:code block if no case matches}expression为表达式,可以是变量、常量或表达式结果。
使用switch时,通常表达式的类型可以是整数型或字符型。
当表达式的值与某个case中的常量值匹配时,将执行对应的代码块。
每个case块后面都需要加上一个break语句,以避免程序进入下一个case块中。
如果省略break,则程序将会继续执行后续case块中的代码,直到遇到break 为止。
switch语句中的default部分是可选的。
当该表达式的值与所有case中的常量值都不匹配时,将执行default块中的代码。
default通常放在switch的最后,类似于一个else语句。
下面我们通过一个例子来展示如何使用switch语句:c#include <stdio.h>int main(){int num;printf("请输入一个数字:");scanf("%d", &num);switch (num){case 1:printf("这是数字1\n");break;case 2:printf("这是数字2\n");break;case 3:printf("这是数字3\n");break;default:printf("这是其他数字\n");}return 0;}在上述代码中,我们首先通过`scanf`函数获取用户输入的一个数字,并将其赋值给变量`num`。
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语句是一种多分支选择结构,它可以根据不同的情况执行不同的代码块。
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语言是一种十分经典的编程语言,而对于初学者来说,学习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函数来比较字符串,根据不同的字符串输出不同的结果。
c语言switch知识点
c语言switch知识点
C 语言中的`switch`语句是一种多分支选择语句,其语法格式如下:
```c
switch(常量表达式)
{
case 常量表达式2:
执行语句; break; // break 按需要写,用来跳出 switch
case 常量表达式3:
执行语句; break;
...
default:
执行语句; break;
}
```
`switch`语句的执行流程如下:
1. 程序会先找到与常量表达式1相等的`case`后面的表达式。
2. 然后从该位置开始向下执行,直到遇见`break`语句跳出`switch`块。
需要注意的是,`case`后面的表达式可以是任意类型,只要表达式的值相等就判定相等。
此外,`case`后面的表达式不能超过`int`的范围,而`switch`括号里面的可以。
当所有`case`后的表达式都不匹配时,会自动跳到`default`那行开始向下执行,直到遇见`break`后跳出`switch`块。
常量表达式的值必须为整型(char、short、int、long、long long)或者枚举类型(enum)。
在一个`switch`里可以有任意数量的`case`,每个`case`后面要接一个常量表达式和一个冒号`:`。
最后一行的`break`语句可以不写,觉得好看可以加上。
switch在c语言中的用法
switch在c语言中的用法一、概述在C语言中,switch是一个用来进行条件分支的控制流语句,用于根据某个表达式的值来选择不同的执行路径。
使用switch语句可以简化多个if...else语句的编写,使代码更加简洁和易读。
二、switch语句的语法结构switch语句的基本语法如下:switch(expression){case constant:// 执行语句块1break;case constant:// 执行语句块2break;...default:// 执行默认语句块break;}其中,expression是一个表达式,constant是常量或常量表达式。
case后面的常量值与expression的值进行比较,如果相等,则执行对应case后面的语句块。
如果没有任何case与expression的值相等,则执行default后面的语句块(可选)。
三、switch语句的执行流程当switch语句执行时,会首先计算expression的值,然后依次与后面的case的常量值进行比较。
如果有匹配的常量值,则执行对应的语句块,并在语句块结尾处遇到break语句时跳出switch语句块,继续执行switch语句之后的代码。
如果没有匹配的常量值,则执行default语句块(如果有),再跳出switch语句块。
四、switch语句的特性与注意事项1. case语句必须是常量case后面的常量值必须是编译时确定的常量,不能是变量或表达式。
2. switch表达式的类型expression的类型可以是整数类型(int、char等)、字符类型(char)或枚举类型,但不能是浮点类型(float、double)。
3. 可以省略break语句在每个case语句块的结尾可以加上break语句用于跳出switch语句,如果省略break语句,则会继续执行下一个case语句块。
这种情况下,多个case语句块会被连续执行,直到遇到break语句或switch语句结束。
C语言switch语句
C语言switch语句C语言中的switch语句。
在C语言中,switch语句是一种非常有用的控制语句,它可以根据表达式的值来选择不同的执行路径。
在本文中,我们将深入探讨switch语句的用法、语法和一些最佳实践。
语法。
switch语句的基本语法如下所示:```c。
switch (expression)。
{。
case value1:// 代码块1。
break;case value2:// 代码块2。
break;...default:// 默认代码块。
}。
```。
在这个语法中,expression是一个表达式,它的值将会被用来和每个case的值进行比较。
如果expression的值和某个case的值相等,那么对应的代码块将会被执行。
如果没有一个case的值和expression的值相等,那么将会执行default代码块(如果有的话)。
值得注意的是,每个case后面都要有一个break语句,用来跳出switch语句。
如果没有break语句,那么程序将会继续执行下一个case的代码块,直到遇到break语句为止。
使用场景。
switch语句通常用于对一个变量的不同取值进行判断,并执行相应的代码块。
这种情况下,switch语句比一系列的if-else语句更加清晰和简洁。
例如,我们可以使用switch语句来根据用户输入的数字来执行不同的操作:```c。
int choice;printf("请输入一个数字,");scanf("%d", &choice);switch (choice)。
{。
case 1:printf("执行操作1\n");break;case 2:printf("执行操作2\n");break;case 3:printf("执行操作3\n");break;default:printf("输入无效\n");}。
c语言中switch的用法
c语言中switch的用法Switch语句是C语言中的一种控制结构,它提供了一种快速、简单、可读性高的方式来处理多个不同的情况。
在本文中,我们将详细介绍Switch语句的用法和主要内容。
1. Switch语句的基本用法Switch语句是根据变量的值来执行相应的代码块。
它由一个switch 关键字、一个括号包含的表达式和一组case标签组成。
表达式通常是一个整数或字符类型,但也可以是其他类型,如枚举或指针类型。
switch (expression) {case value1:// code blockbreak;case value2:// code blockbreak;...default:// code block}在上面的代码中,当表达式的值等于value1时,执行第一个case标签下面的代码块;当表达式的值等于value2时,执行第二个case标签下面的代码块;以此类推。
如果没有任何一个case标签匹配表达式的值,则执行default标签下面的代码块(如果有)。
注意:每个case标签后面必须有一个break语句来结束该分支。
否则程序将继续执行下一个case分支直到遇到break或整个switch语句结束。
2. Switch语句中常见错误在使用Switch语句时,需要注意以下几点:2.1 没有break语句在每个case标签下面都必须加上一个break语句,否则程序将继续执行下一个case分支直到遇到break或整个switch语句结束。
2.2 没有default标签如果没有任何一个case标签匹配表达式的值,则执行default标签下面的代码块(如果有)。
如果没有default标签,程序将不会执行任何代码。
2.3 表达式类型错误Switch语句的表达式通常是一个整数或字符类型,但也可以是其他类型,如枚举或指针类型。
如果表达式的类型不正确,则编译器将会报错。
3. Switch语句的高级用法除了基本用法之外,Switch语句还有一些高级用法:3.1 多个case标签共用一段代码在Switch语句中,多个case标签可以共用一段代码。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
一般在各个case 语句最后应该加 一break语句, 可使程序流程跳出 Switch结构. 否则会从入口处一直向下执行.
}
09:28:26 Ch7_7_2.c
例7.3 执行下列程序,当分别输入A、B、C、E时,求K的值.
char c; int k=2; scanf(“%c”, &c); switch (c-’A’) { case 0: k++; case 1: K += 2; break; default: k *= k; case 4: k *= 3; } printf(“k=%d”,k);
default可以没有.
09:28:26
(7). 多个case可共用一
组执行语句. 例如为了统计一段文 字中的数字,字母及分隔
符的个数,
可用下列程序段实现:
switch(ch) 表达式后都有 一冒号”:” . { case ‘0’: case ‘1’: …. 这里有 case ‘8’: 一个空格. case ‘9’: digit ++ ; break ; case ‘ ’: case ‘\n’: case ‘\t’: white++ ; break ; default : character++; break; }
for(i = 0; i < 3; i++)
switch(i)
注意所属关系
{ case 1: printf("%d",i);
case 2: printf("%d",i);
default: printf("%d",i);
}
09:28:26
例7. 7 编写一个简易计算器.
Ch7_7_7.c 09:28:26
无break语句 语句序列n+1
09:28:26
说明:
switch语句不等同于if语句:
只进行值的相等性 的检查,不是逻辑判断!
1. switch只能进行值的相等性的检查.
2. if语句不但可以进行相等性的检查, 还可以计算关
系表达式或逻辑表达式,进行逻辑判断的真假.
09:28:26
例7.1 键盘输入0-6之间的整数,分别代表每周的星期日、星期一、 …、星期 六
}
09:28:26
例7.5 编写程序,实现如下功能。
输入一个实数后,屏幕显示如下菜单: 1. 输出相反数 2. 输出平方数 3. 输出平方根 4. 退出
09:28:26
#include <stdio.h> void main() { int i, c=5; float m; printf("输入任意一个整型数:\n"); scanf("%f", &m); printf("****************************\n"); printf("1,输出相反数\n"); printf("2,输出平方数\n"); printf(“3,输出开方根\n"); printf("4,退出\n"); printf("****************************\n"); …… Ch7_7_5.c
一般形式如下:
09:28:26
switch(表达式 ) { case 常量表达式1: 语句1 [break]; case 常量表达式2: (2). 关于常量表达式1~n: 只起到 语句2 一个标号的作用,根据表达式的值来 [break]; 判断, 找到一个相匹配的入口处,程 … 序往下执行。 各个case后的常量表达式的值 case 常量表达式n: 必须互不相同. 语句n [break]; [default: (3). 每个case分支可有多条语句 语句n+1] ,可不用花括号{ }。 }
09:28:26
switch(表达式)
真(非0)
有break语句
语句序列1
表达式==常量表达式1?
break
假(0)
表达式=常量表eak语句
语句序列2
break
无break语句 有break语句
真(非0)
表达式=常量表达式n?
假(0)
语句序列n
break
….
09:28:26
for(i = 1; i <= 10; i++){ ch = getchar(); switch (ch) { case ‘‘ : input 10 characters: Reold 123? case ’\n‘ : blank ++; blank=1, digit=3, other=6 break; case '0' : case '1' : case '2' : case '3‘: case '4' : case '5' : case '6' : case '7' : case '8' : case '9' : digit ++; break; default: other ++; break;
09:28:26
….. while(1) { scanf("%d", &c); switch(c) { case 1: printf("输出相反数: %f\n", -m);break; case 2: printf("输出平方数: %f\n", m*m); break; case 3: printf("输出平方根: %f\n", sqrt(m)); break; case 4: break; default: printf("请输入1~4之间的数字!\n"); } if ( c==4 ) break; Ch7_7_5.c 09:28:26 }
09:28:26
说明: (1). 关于表达式: 表达式可以是 整型、字符型等表达式。 有一个确定的值(不是逻辑值).
switch(表达式 ) { case 常量表达式1: (4). 各个case 语句只是一 语句1 个入口标号,并不确定执行 [break]; 的终止点. case 常量表达式2: 语句2 (5). 一般在各个case 语句最后应 该加一break语句, 可使程序流程 [break]; 跳出Switch结构. … case 常量表达式n: 否则会从入口处一直向下执行. 语句n [break]; (6). 各个case和default [default: 出现的先后次序,并不影响执 语句n+1] 行结果. }
ASCII值: ‘0’ 48 ‘A’ 65 ‘a” 97
case 'A': case 'B': case 'C': case 'D': case 'E': case 'F': printf("十进制数: %d\n", ch-55); break;
…
Ch7_7_6.c
09:28:26
case 'a': case 'b': case 'c': case 'd': case 'e': case 'f': printf("十进制数: %d\n", ch-87); break; case 'Q': case 'q': printf("退出程序\n"); exit(0);
#include <stdio.h> #include <stdlib.h> int main() { float numb1 = 0, numb2 = 0; int menu = 1, flag; float total=0; char calType; ….
}
09:28:26
例7.2 求执行下列程序段后k的值
#include <stdio.h> int main() { char c=‘2’; int k=1;
switch (c+1-'0')
‘0‘的ASCII值为48.
{ case 2: k+=1; case 2+1: k+=2; case 4: k+=3; } printf("k=%d\n",k); return 0;
#include <stdio.h> int main( ) { int day; printf("请输入星期的数字编号(0-6): "); scanf("%d", &day); ….
Ch7_7_1.c
09:28:26
表达式有一个确定的 …. 值(不是逻辑值). switch (day) 每个case分支可有多条 { case 0: printf("星期日 \n"); 语句,可不用花括号{ } 也可以用。 break; 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; default: printf("输入有误,请输入0-6之间的数字!\n"); } return 0;