大学程序设计与算法语言《选择结构》专题课件_第1页
大学程序设计与算法语言《选择结构》专题课件_第2页
大学程序设计与算法语言《选择结构》专题课件_第3页
大学程序设计与算法语言《选择结构》专题课件_第4页
大学程序设计与算法语言《选择结构》专题课件_第5页
已阅读5页,还剩27页未读, 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

程序设计基础系列大学程序设计与算法语言《选择结构》专题课件条件·分支·逻辑·流程授课时间2026年课程导览01认识选择结构从顺序执行到分支跳转02条件与逻辑运算构造判断表达式03分支语句详解if与switch的语法机制04嵌套与综合应用应对复杂多分支场景05常见陷阱与规范规避错误,养成好习惯CHAPTER认识选择结构让程序学会做判断从顺序执行走向分支跳转01从顺序执行到分支跳转引入选择结构后,程序执行路径不再唯一,具备了分支跳转的能力顺序执行计算机程序默认按书写顺序逐条执行,这一特性称为顺序执行。现实问题往往需要在不同条件下走不同的处理路径。分支跳转选择结构让程序在运行时根据条件的真假,决定是否跳过某段代码。引入选择结构后,程序执行路径不再唯一,具备了分支跳转的能力。三大控制结构各司其职顺序结构语句自上而下依次执行,程序运行的默认方式默认方式选择结构依据条件真假,在两条或多条路径中选择其一决策循环结构在条件满足时重复执行同一段代码重复执行三者组合即可描述任意可计算问题的求解过程,其中选择结构负责决策选择结构的执行流程整体呈现

先判断、后选择、再汇合

的形态1第一步求值对条件表达式求值得到一个真或假的结果2第二步分支结果为真时执行指定语句块为假时跳过或转向另一分支3第三步汇合无论走哪条路径程序最终汇合到分支之后继续向下执行生活中的选择结构用生活场景类比选择结构,把抽象语法对应到日常经验出行选择若下雨则带伞否则不带伞成绩处理若分数不低于及格线输出通过否则输出未通过门禁系统若刷卡合法开门否则报警这些场景的共同点:判断条件

决定后续行为CHAPTER条件与逻辑运算判断的基石是表达式关系运算与逻辑运算的构造方法02关系运算判断大小真假关系表达式是构造判断条件最基本的构件用途与常见形式用途:比较两个操作数的大小或相等关系常见形式:大于、小于、大于等于、小于等于、等于、不等于结果形态逻辑值真或假多数语言中用1表示真用0表示假相等与赋值切勿混淆外形相近、作用迥异,误用会让条件判断彻底失效——这是初学者最高频的错误之一。赋值运算符=将右侧的值存入左侧变量作用把右边的值写进左边变量示例score=100→把100存入score方向从右向左单向写入相等运算符==判断两侧的值是否相等作用比较左右两边是否相等示例score==100→判断score是否为100结果得到真或假的判断值逻辑运算连接多个条件逻辑运算可把多个关系表达式组合起来,构造复合条件三种逻辑运算——与、或、非,是构造复合条件的基础工具逻辑运算可把多个关系表达式组合起来,构造复合条件逻辑与两个条件同时为真时,结果才为真。逻辑或两个条件只要有一个为真,结果即为真。逻辑非对单个条件的真假取反。短路求值的特性提升效率:避免不必要的计算开销保障安全:防止除零或空指针访问“编写复合条件时需注意求值顺序”短路求值:左侧结果决定右侧是否求值逻辑与(&&)左侧条件为假,右侧不再求值逻辑或(||)左侧条件为真,右侧不再求值运算符优先级与结合性混合运算时,优先级决定求值顺序优先级等级(由高到低)01逻辑非最高02关系运算03逻辑与04逻辑或最低实践建议优先级不清时,主动加圆括号明确意图加括号不改变运算结果,却能显著提升可读性CHAPTER分支语句详解语法决定程序的走向if与switch的语法与执行机制03单分支语句的基本形态关键字标识起始,圆括号写条件,语句块写操作关键字标识分支语句的起始圆括号内书写条件表达式语句块书写条件成立时执行的操作执行规则条件为真时执行语句块,为假时整个分支被跳过适用于只需在满足条件时做额外处理的场景双分支实现二选一在单分支基础上增加另一分支,形成二选一判断真执行前一个语句块假执行后一个语句块互斥必有且仅有一条被执行适用场景适合非此即彼的判断,如判断奇偶、正负优势双分支比两个独立的单分支更清晰、更高效多分支层层筛选多分支层层筛选

执行机制多条件串联›条件成立即跳出›兜底分支多个判断条件自上而下依次检查执行对应语句块并跳出整条判断链前面条件均不成立时执行最后的兜底分支排列原则条件顺序影响结果从特殊到一般排列适用场景成绩等级分段计费多区间判断条件运算符简化判断三目条件运算符形式简洁,但仅在简单取值时适用,嵌套过深会显著降低可读性。简化但不滥用:形式简洁,仅限简单取值唯一的三目运算符需要三个操作数,形式简洁但仅在简单取值时适用使用建议可嵌套使用,但嵌套过深会降低可读性仅适合简单取值,复杂逻辑仍应使用分支语句适用场景根据条件在两个值之间做简单选择条件成立时取第一个值,否则取第二个值形式简洁,无需引入分支语句即可完成取值嵌套警示可嵌套,但每加深一层都会降低可读性嵌套过深时应改用分支语句重写switch多路分支语法switch

用于对一个表达式的多个取值分别处理离散类型表达式结果须为整型或字符型等离散类型常量标签每个分支以常量值作为入口标签依次比对程序依次比对,命中后从该处开始执行等值判断结构清晰,适合等值判断的多种情况break与贯穿现象讲解分支结束语句的作用与贯穿现象的成因,提醒其隐蔽风险分break语句与贯穿现象break每个分支末尾通常配合

break

结束语句,用于跳出整个多路分支贯穿省略结束语句时,程序会继续向下执行后续分支,称为

贯穿风险贯穿有时被有意利用,但更多时候是

隐蔽的错误来源贯穿路径示意命中分支执行本分支语句无break继续向下执行后续分支落入后续逻辑形成贯穿标签值唯一性各分支标签的值必须

互不相同默认分支兜底合理使用默认分支可处理

未列举

的情况123CHAPTER嵌套与综合应用复杂问题分层判断多分支嵌套与综合案例实践04嵌套判断层层深入讲解分支嵌套的形成方式、适用场景与层数控制原则在分支语句块内部再次书写分支语句,即形成嵌套嵌嵌套定义与执行逻辑定义在一个分支的语句块内部再次书写分支语句,形成嵌套逻辑外层条件成立后,才会进入内层判断用适用场景与层数控制场景适合具有层次关系的条件,如先分类再细分控制嵌套层数不宜过多,一般不超过三层缩进规范是保证嵌套可读性的关键嵌套与多分支的取舍同一问题既可用嵌套实现,也可用多分支链实现选型标准:以逻辑清晰、易于维护为首要标准二者也可混合使用,但应控制复杂度链多分支链特点结构更扁平场景条件互斥的连续区间嵌嵌套特点贴近问题层次场景条件有先后依赖VS案例

成绩等级判定以成绩等级判定为例,演示多区间判断的完整实现思路多分支链划分分数区间先用多分支链划分分数区间,为后续逐段判断建立分支骨架。01从高到低逐段判断分支链按从高到低的顺序逐段判断,命中区间即返回对应等级。02校验成绩是否落在合理范围之内需同时校验成绩是否落在合理范围之内,保证判定前提成立。03非法输入应给出提示,避免误判对非法输入应给出提示,避免误判。04案例

闰年判断某年为闰年需满足:能被4整除且不能被100整除,或者能被400整除该条件为逻辑与(&&)和逻辑或(||)组合的典型应用体现复合逻辑条件的表达能力实现要点该条件为逻辑与(&&)和逻辑或(||)组合的典型应用可用嵌套

if

或复合条件两种方式实现CHAPTER常见陷阱与规范细节决定程序成败典型错误剖析与编码规范养成05语法层面的常见错误条件表达式误用赋值运算符用

=

代替

==

判断相等表达式恒为赋值结果,条件永远成立编译器可能仅告警,运行结果偏离预期圆括号、花括号不配对括号数量或层级错位直接导致编译失败报错定位在括号附近,逐层核对条件后误加分号if(条件);

使分支体成为空语句后续语句无条件执行能通过编译但逻辑完全失效分支块未加花括号仅第一条语句受控其余语句无条件执行缩进造成的视觉假象需警惕逻辑层面的隐蔽陷阱能通过编译,却让结果

南辕北辙精度陷阱浮点数用相等运算直接比较可能因精度问题失效改用误差范围判断区间陷阱多分支条件区间重叠或遗漏边界取值落入错误分支梳理区间需覆盖完整逻辑陷阱逻辑运算左右操作数写反条件永真或永假核对语义与运算方向优先级陷阱复合条件缺少括号求值顺序与预期不符用括号显式固定优先级switch语句的易错点switch分支判断中需重点规避的五类典型误用遗漏结束语句造成意外的贯穿执行标签使用变量分支标签必须为常量书写范围条件分支标签不支持范围或复合条件默认分支位置随意影响代码可读性表达式类型不匹配导致匹配失败培养良好的编码规范规范不是束缚,而是降低出错概率的手段统一缩进让嵌套层次一目了然简短拆分条件表达式保持简短,复杂逻辑适当拆分注释说明

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论