C语言switch选择结构 您所在的位置:网站首页 for是什么结构 C语言switch选择结构

C语言switch选择结构

2023-11-24 08:05| 来源: 网络整理| 查看: 265

一、switch的思想及意义: 程序设计中选择结构的第二大语句就是:switch语句。switch和if—else if一样都可以做多分支选择,但是switch语句的思想是把程序所有可能出现的值 的情况,列出一个情况表,根据所输入的值判断与情况表中的的那种情况相同,直接执行相应情况下的语句即可。可直接处理相对应的数据流,加快执行速度。 switch语句之所以被称为开关语句,因为它就类似于生活中人们乘坐电梯,每个乘客都会选择自己需要的楼层,也有多位乘客同时选择同一层,这时候,每位乘客只需要选择好自己的楼层,电梯到了之后自然会自动打开。这个生活例子非常具体的表现了switch语句的思想。 二、switch与if比较 switch语句又称开关语句,是选择结构的一种语法。 switch语句与if语句相比较,一般指的是if语句的第三大形式if—else if,也就是我分支语句的比较。 1.代码的易读性及全面性 (1)switch 语句写出的程序,可读性非常好,整体流程看起来清晰明确。 (2)if语句适应性非常强,可以处理的情况与switch比较要更加全面。比如说字符串比较就只能用if语句。 2.代码的值的判断 (1)if表达式一般为逻辑表达式或关系表达式(判断的是某个区域,这里可以是任意表达式),也可以是常量表达式,但是比较少,判断条件的结果只有”真”或”假”。 (2) switch后的表达式可以是任意表达式,主要是某些情况下的某种情况的判断(判断的是某个值),表达式的条件的结果可以根据输入或特定情况有n多种值,根据各值选择分支。 3.分支的多少 (1)if一般应用于情况比较特殊的逻辑判断,或者情况很少的选择判断。 (2) switch一般应用于条件判断简单,但是分支很多的情况中使用。 4.switch的独有优点 (1)switch相对if来说,还有if比不了的优点就是在选择分支较多时,switch…case结构会生成跳转表,根据变量的取值跳转到合适的分支用switch…case结构会提高程序的效率 5.所有的switch语句都可以被if—else if替换,但是反过来则不一定。 三、switch语句的应用 srwitch是开关的意思,所以有的书籍上也把它称为开关语句。switch语句主要用于选择结构多分支的情况下。 1.switch语句的一般格式。 switch(表达式) { case 常量表达式1:语句1; break; case 常量表达式2:语句2; break; … … default:语句; } switch的执行过程是判断表达式的值与case后常量表达式的值哪个相等,执行相应的语句后跳出switch. switch的流程图表示如下: 在这里插入图片描述 2.switch语句的注意事项 在讲注意事项之前大家先在机器敲下下面的三段代码: (1)有无break都行,一般都有,作用是跳出switch. (2)default是缺省值,可有可无,意思是除case 后所有情况(值)下的其它情况(值)。 (3)case与后边常量表达式之间必须有空格。 (4)各case和default可以任意互换位置,并不影响程序和逻辑的正常运行。 (5)switch 后边的表达式可以是任意表达示(这是指可以是算术表达式,也可以关系表达式及其它表达式),但是结果只能是整型或单字符型。 (6)case 后边可以是任意常量表达式(这是指可以是算术常量表达式,也可以关系常量表达式及其它常量表达式),但是结果只能是整型或单字符型。 (7)case后边的常量表达式不能出现重值。 (8)多个case可以执行同一组语句;其实就是1的重复,无break继续向下,直到碰到break. 执行以下代码,运行查看效果

(1)#include "stdio.h" void main() { int n; printf("\n\n\t请输入你的选择:"); scanf("%d",&n); switch(n) { case 1:printf("\t星期一\n"); case 2:printf("\t星期二\n"); case 3:printf("\t星期三\n"); case 4:printf("\t星期四\n"); case 5:printf("\t星期五\n"); case 6:printf("\t星期六\n"); case 7:printf("\t星期日\n"); default:printf("\t错误\n"); } } (2)#include "stdio.h" void main() { int n; printf("\n\n\t请输入你的选择1-7:"); scanf("%d",&n); printf("\t你选择的是:\n\n\n"); switch(n) { case 1:printf("\t星期一\n");break; case 2:printf("\t星期四\n"); break; case 3:printf("\t星期三\n"); break; case 4:printf("\t星期四\n"); break; case 5:printf(“\t星期五\n"); break; case 6:printf("\t星期六\n"); break; case 7:printf("\t星期日\n"); break; } }

以上两段代码说明注意事项1、2、3;那大家考虑以下代码输入5输出结果是什么呢?

(3)void main() { int n; printf("\n\n\t请输入你的选择1-7:"); scanf("%d",&n); printf("\t你选择的是:\n\n\n"); switch(n) { case 1:printf("\t星期一\n");break; case 2:printf("\t星期四\n"); break; case 3:printf("\t星期三\n"); case 4:printf("\t星期四\n"); break; case 5:printf(“\t星期五\n"); case 6:printf("\t星期六\n"); case 7:printf("\t星期日\n"); break; } }

结果应该是:星期五 星期六 星期日 现在大家利用已知的switch基本结构,及注意事项,大家来完成一个题。输入月份,输出每个月份所对应的天数? 参考代码如下:注意这段代码中是有错的,要求你先改正错误,再总结用到了那些注意事项:

#include "stdio.h" void main() { float month;//表示几月 printf(“\n\n\t请输入月份:"); scanf("%f",&month); switch(month) { case 12: case 1: case 2: printf(“冬天”);break; case 3: case 4: case 5: printf(“春天”);break; case 6: case 7: case 8:printf(“夏天”);break; case 9: case 10: case 11: printf(“秋天”);break; default:printf("\t错误\n");break; } }

以上这段代码中基本上包括了上面的八大注意事项,你都找到了吗。 3.switch语句的不足 switch语句的不足在于只能进行某个值的判断,如果是某个区域如输入一个数a>90时做什么或者输入电影名称,查看电影简介,这时就只能用if—else if了。



【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有