热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

语言幼儿园分班用switch_C语言系列(四):分支结构程序设计

选择结构是程序设计3种基本结构之一,通过判定给定的条件是否成立选择需要执行的操作。C语言提供了条件语句(if语句和switch语句)用以实现选择结构的程序设计
选择结构是程序设计3种基本结构之一,通过判定给定的条件是否成立选择需要执行的操作。C语言提供了条件语句(if语句和switch语句)用以实现选择结构的程序设计,条件通常用关系表达式或逻辑表达式表示。C语言提供3种逻辑运算符,即!(逻辑非)、&&(逻辑与)、||(逻辑或)。ae09d3f0844cba9c1075989e6d33343a.png可知:1. 逻辑非运算表示对运算对象的值取反(右结合性)2. 逻辑与运算中,当参与运算的两个操作数均为真时,其结果为真否则为假(左结合性)3. 逻辑或运算中,当参与运算的两个操作数均为假时,其结果为假否则为真(左结合性)多分支结构和else-if语句一般形式:if(表达式1)语句1;elseif(表达式2)语句2;elseif(表达式3)语句3;...elseif(表达式n-1)语句n-1;else语句n;解析:表达式通常为关系表达式或者逻辑表达式,表示判定条件。语句可以是简单语句和复杂语句。执行流程:首先求解表达式1,为真则执行语句1,并结束整个if语句的执行,转至整个if语句的下一条语句;否则,求解表达式2,为真则执行语句2,并结束整个if语句的执行,转至整个if语句的下一条语句;否则...;最后的else处理给出的条件都不满足的情况,即表达式1、表达式2、...、表达式n-1的值都为假,执行语句n。switch语句switch语句在处理多分支为题时更为方便有效,其又称为开关语句。根据switch语句使用break语句的方法,分3种情况。1. 在switch语句中,各分支都有单独语句段和break语句,一般形式如下:switch(表达式) {case常量表达式1:语句1;break;case常量表达式2:语句2;break;...case常量表达式n:语句n;break;default: 语句n + 1;break;}执行流程:首先计算表达式的值,若表达式的值与某个case后的常量表达式的值相等,则执行该常量表达式后的语句段,接着执行其后的break语句跳出switch;若表达式的值不与任一个常量表达式相等,则执行default后的语句段,接着执行其后的break语句跳出switch。注意:当遇到switch语句嵌套时,break只能跳出当前一层switch语句体,而不能跳出多层switch嵌套语句。2. 在switch语句中,各分支都不使用break语句,一般形式如下:switch(表达式) {case常量表达式1:语句1;case常量表达式2:语句2;...case常量表达式n:语句n;default: 语句n + 1;}执行流程:首先计算表达式的值,若表达式的值与某个case后的常量表达式的值相等,则执行该常量表达式后的语句段;若表达式的值不与任一个常量表达式相等,则执行default后的语句段。注意:这种形式的switch语句很少使用,不能真正实现多分支情况的处理。例子:下面程序段根据考生成绩等级输出相应百分制分数段,分析能否正确实现。# include//编译预处理命令intmain()                  //主函数{switch('C') {case'A':printf("85~100\n");case'B':printf("70~84\n");case'C':printf("60~69\n");case'D':printf("不及格\n");default:printf("输入错误!\n");}return0;}分析:若grade的值为’C’,程序在执行到switch语句时,按顺序与switch的语句进行逐个比较,当在case中找到相匹配的’C’时,由于没有break语句,程序从分支case ‘C’:开始,向后顺序执行其后所有的语句。输出结果:f423fd777a5a9f9ccb2f770e40fcdff6.png3. 在switch语句中,多个分支共用相同语句段和break语句。在switch语句中,允许case常量表达式后的语句段为空,这样就使得多个case分支共用相同语句段和break语句。实际应用中,当两个或多个分支所要执行的语句段功能完全相同时,可以使用这种形式,使程序看起来更简单。嵌套的if-else语句一般形式:if(表达式1)if(表达式2)语句1;else语句2;elseif(表达式3)语句3;else语句4;显然,以上实现了4路分支。说明:else-if语句和嵌套的if-else语句都可以实现多分支结构,各有特色。else-if语句的逻辑结构更清晰,但效率较低。嵌套的if-else语句结构较为复杂,容易产生二义性,但效率较高。在嵌套的if-else语句中,如果内嵌if省略else,使得else与if数量不等,可能在语义上产生二义性。这需要我们应该知道,else和if的匹配规则是由内而外的,else总是与它最近的且未与其他else匹配的if相匹配。

推荐阅读

(点击文字自动跳转)

C语言系列(三):基本数据类型与表达式

C语言系列(二):用C语言编写程序

C语言系列(一):C语言程序概述

浅谈嵌入式

85cfa34a3f6daf711d45a98b5fc890d5.gif7d53d0de84b7dd5b6be261f0ed261203.gif

参考资料:肖捷 侯家利——C语言程序设计




推荐阅读
author-avatar
爱你116564
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有