考点6 条件语句与多分支语句《C语言程序设计》山东(春季高考)软件与应用技术类 知识点讲解

| 10页
| 1人阅读
| 0人下载

学科网 zxxk.com学科网 zxxk.com

山东省(软件与应用技术类)春季高考

《C语言程序设计》复习讲义

模块 一  C 语言程序设计

考点 6   条件语句与多分支语句

【考纲要求】

(1)掌握条件语句(if语句)和多分支语句(switch语句)的用法。

【知识网络】

【知识和技能要点】

一、if 语句

1. 单分支 if 语句

if 语句者,依条件之真假以决是否执行某段程序,为分支结构之始。其形式为 if(表达式) 语句;,括号内之表达式可为任意类型,算术、赋值、关系皆可。执行之时,先求表达式之值,非page number 0

学科网 zxxk.com学科网 zxxk.com学科网(北京)股份有限公司


学科网 zxxk.com学科网 zxxk.com

零则为真,乃执行其后语句;为零则为假,则跳过之,径行后续。故 if 之后所判者,非必关系表达式,凡数值皆可充作条件。

(1)形式:if(表达式) 语句; 语句可为一条简单语句,亦可为花括号所括之复合语句。

(2)判断之据:非零为真则执行,零为假则跳过。

(3)括号内表达式:可为算术、赋值、关系等任意类型。

2. if-else 双分支语句

二选其一者,用 if-else 语句,其形式为 if(表达式) 语句1; else 语句2;。表达式为真则行语句1,为假则行语句2,二者必居其一,不相兼亦不相遗。与单分支相较,此处无论真假皆有去处,故不必另设缺省之处理。若一支所含者不止一句,须以花括号括为复合语句,否则只其首句属于该分支。

(1)形式:if(表达式) 语句1; else 语句2;

(2)执行:真行前者,假行后者,二者必择其一。

(3)复合语句:一支含多句时,须以花括号括之。

3. if-else-if 多分支语句

分支逾二者,可用 if-else-if 之式,写作 if(式1) 语句1; else if(式2) 语句2; … else 语句n;,如阶梯之状。执行之时,自上而下依次验其条件,遇真者即行其句,余皆不问;若皆不合,则行末尾 else 之句。故条件之先后颇有讲究:宜以严者居先、宽者居后,否则宽者先中,后之严者永无得行之日。

(1)形式:if(式1) … else if(式2) … else …,如阶梯层层而下。

(2)执行:自上而下依次验之,遇真即止。

(3)次序之要:严者居先、宽者居后,否则后者永不得行。

二、if 语句的嵌套与常见错误

1. if 语句的嵌套

if 语句之内又可再含 if 语句,是谓嵌套,可层层深入以处复杂之条件。嵌套之层数不宜过多,逾三层者,程序遂晦,宜改用 switch 或多设函数。书写之时,宜以缩进明其层次,使内外判然可辨;又以花括号括其内层,虽单句亦宜加之,以免日后增删而生歧误。

(1)形式:if 之内再含 if,可层层嵌套。page number 1

学科网 zxxk.com学科网 zxxk.com学科网(北京)股份有限公司


学科网 zxxk.com学科网 zxxk.com

(2)层数之限:三层以上则难读,宜改用 switch 或函数。

(3)书写之宜:缩进以明层次,花括号以固所辖。

2. else 的配对规则

else 并不作独立之语句,必须与 if 相配。其配对之规为就近相配:else 与之前最近的、尚未配对的 if 相属,与缩进无关。故嵌套之时,若内层 if 欲单独成句而不与 else 相配,须以花括号括之,使 else 得配于外层。此规不明,则程序之意与所书者大相径庭,而编译器不加提示。

(1)配对规则:else 配其前最近而未配之 if,与缩进无关。

(2)以括号定属:内层 if 以花括号括之,则 else 配于外层。

(3)隐患:失配则语义与所书不合,编译器不报错。

3. if 语句的常见错误

用 if 者,常见之误有三。其一,以赋值号代相等号,if(a=b) 之意为赋值,其值非零则恒真,应作 if(a==b)。其二,括号之后误加分号,if(x>0); 使分支体成空语句,其下之句反不受条件所辖。其三,多句未加花括号,致只有首句属该分支,余者皆无条件执行。三者皆语法合法而语义有误,故宜细察。

(1)赋值与相等:if(a=b) 恒依所赋之值判真假,应作 a==b。

(2)误加分号:if(x>0); 使分支体为空语句,其后之句不再受条件所辖。

(3)漏花括号:一支含多句而未经括起,余者无条件执行。

三、switch 语句

1. switch 的形式与执行过程

分支逾三者,用 switch 语句最为简明,其形式为 switch(表达式){ case 常量1: 语句; …; default: 语句; }。执行之时,先算括号中表达式之值,再与各 case 之常量表达式逐一比较,匹配则行其下之语句。case 之后须为常量表达式,且各 case 之值不得相同;表达式之类型宜为整型或字符型,不得为实型。

(1)形式:switch(表达式){ case 常量: 语句; … default: 语句; }

(2)执行:先算表达式,再与各 case 常量比较,匹配即行。

(3)限制:case 后须为常量表达式,各值不得重复,表达式宜为整型或字符型。page number 2

学科网 zxxk.com学科网 zxxk.com学科网(北京)股份有限公司


由于学科网是一个信息分享及获取的平台,不确保部分用户上传资料的 来源及知识产权归属。如您发现相关资料侵犯您的合法权益,请联系学科网,我们核实后将及时进行处理。