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语句的数量。
- 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;