4.5 switch选择结构-高二《新概念C语言能力教程》同步教学课件 (电工版2020)
2023-06-12
|
25页
|
84人阅读
|
0人下载
精品
内容正文:
第4章逻辑运算和选择结构
第4章逻辑运算和选择结构
01逻辑型数据
02关系表达式
03逻辑表达式
04短路计算
05if选择结构
06复合语句和if-else选择结构
07选择结构的嵌套
08编程练习和条件表达式
09switch选择结构
10典型例题
2
switch选择结构
这节课,我们讨论switch选择结构。
3
switch选择结构比较复杂,由switch关键字和一对圆括号中的表达式及一个复合语句组成。
复合语句中包含一系列case标号和一个可有可无的default标号。
一个case标号由case关键字、空格、常量表达式和冒号组成。
常量表达式通常是指操作数为字面量的表达式,多为字面量,如字符c。
一个case标号关联一个语句序列,即一条或多条语句。
default标号最多有一个,由default关键字和冒号组成。default标号也关联一个语句序列。
4
switch选择结构的执行过程
switch选择结构执行时,先对表达式求值,然后找与哪个case标号中的常量表达式的值相等,找到后,从此标号开始,依次执行下面所有的语句序列,即上面的语句序列不再执行。
若没有找到相等的值,则从default标号处开始执行语句序列。若没有找到相等的值,switch选择结构中也没有default标号,则直接结束switch选择结构的执行。
5
例4-18 分析输入b时程序的输出结果
当输入b时,字符型变量c的值为字符b,switch选择结构开始执行,表达式的值为字符b,
与第2个case标号中的表达式的值相等,即从此处开始自上而下依次执行后面的语句序列。
程序的输出为b a 您的输入不是a,b或c!。
这个程序的输出结果与实际不符合。
6
例4-19 有break语句的switch选择结构
关键字break加个分号就构成
了break语句。
break语句会立即结束switch选择结构
的执行。
例4-19 分析输入b时程序的输出结果
关键字break加个分号就构成了break语句。
break语句会立即结束switch选择结构的执行。
程序中switch选择结构中的语句序列最后一条语句均为break;语句。
当输入b时,字符型变量c的值为字符b,switch选择结构开始执行,表达式的值为字符b,
与第2个case标号中的表达式的值相等,即从此处开始自上而下依次执行后面的语句序列。
先输出b,再执行break语句,结束switch选择结构的执行,即后面的语句序列不再执行了。
程序的输出为b。
7
分析下面的程序
把用户输入算式中的操作数分别存储在变量a和b中,运算符号保存在变量op中。使用switch选择结构根据op的值,计算出结果。
8
语句序列可以为空
case标号仅起指示位置的作用,与case标号相关联的语句序列可以为空。
空语句序列不影响switch选择结构的执行过程,依然会从该位置处开始依次执行下面的所有语句序列。
如下面这段代码可以判断变量i能否被4整除。
case标号仅起指示位置的作用,与case标号相关联的语句序列可以为空。
空语句序列不影响switch选择结构的执行过程,依然会从该位置处开始依次执行下面的所有语句序列。
如判断变量i能否被4整除的switch选择结构中,前2个case标号没有语句序列。
变量i能否被4整除用if-else选择结构判断显然更简洁。
9
思考题:对比分析下面两个程序
左边程序用多个if选择结构实现了switch选择结构的功能,两者的可读性都非常好。
但执行完处理后可以用break语句及时退出,switch选择结构的执行效率比多个if选择结构的高。
用if-else选择结构实现同样的功能,执行效率不差,但代码的可读性差。
算法中出现相等关系的多分支选择,通常用switch选择结构实现。
10
典型例题
例4-21 把用户输入的3个整数存入变量a,b和c中,编程让a、b和c三个变量的值保持升序(从小到大,即变量a的值最小,变量c的值最大)。
利用具体的数据分析。
输入和输出 第一次 第二次 第三次 变量
用户可能的输入 3、2和5 5、2和3 2、3和5 a、b和c
程序预期的输出 a:2 b:3 c:5 a:2 b:3 c:5 a:2 b:3 c:5 a<b<c
例4-20 把用户输入的3个整数存入变量a,b和c中,编程让a、b和c三个变量的值保持升序(从小到大,即变量a的值最小,变量c的值最大)。
利用具体的数据分析。不管用户以何种顺序输入3,2,5这几个数,处理之后,变量a,b和c的值分别是,2,3,5.
12
让a、b和c三个变量的值保持升序的算法
有许多排序算法,但试着理解下面的算法。
第1步:先让变量a和b保持升序。
第2步:再让a、b和c三个变量保持升序。
这
由于学科网是一个信息分享及获取的平台,不确保部分用户上传资料的 来源及知识产权归属。如您发现相关资料侵犯您的合法权益,请联系学科网,我们核实后将及时进行处理。