考点6 条件语句与多分支语句《C语言程序设计》山东(春季高考)软件与应用技术类 知识点讲解
山东省(软件与应用技术类)春季高考
《C语言程序设计》复习讲义
模块 一 C 语言程序设计
考点 6 条件语句与多分支语句
【考纲要求】
(1)掌握条件语句(if语句)和多分支语句(switch语句)的用法。
【知识网络】
【知识和技能要点】
一、if 语句
1. 单分支 if 语句
if 语句者,依条件之真假以决是否执行某段程序,为分支结构之始。其形式为 if(表达式) 语句;,括号内之表达式可为任意类型,算术、赋值、关系皆可。执行之时,先求表达式之值,非
学科网(北京)股份有限公司
零则为真,乃执行其后语句;为零则为假,则跳过之,径行后续。故 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,可层层嵌套。
学科网(北京)股份有限公司
(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 后须为常量表达式,各值不得重复,表达式宜为整型或字符型。
学科网(北京)股份有限公司