第4章 分支结构程序设计
合集下载
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
第4章 分支结构程序设计
4.1 分支结构的设计思想 4.2 实现分支结构判断条件的构成 4.3 实现分支结构程序设计的语句 4.4 分支结构程序设计举例
4.1 分支结构的设计思想
根据不同的条件,执行不同的程序流程,这就形成了所谓 的“分支”结构。 分支结构程序的设计要考虑两个方面的问题: –判断条件 判断条件是分支结构设计的关键。一个判断条件的结果只 有两种可能:条件成立和条件不成立,并由此决定了程序流程 的走向。 –实现分支结构语句的构成及选择 分支结构程序的设计就是要正确描述判断的条件,并将其 与要实现的具体工作放在分支结构语句中,实现要完成的处理。 。
首页 上一页
4.2 实算符及其优先顺序
表4.1是关系运算符种类、功能及优先级别顺序。 • 关系运算符优先级低于算术运算符,高于赋值运算符 • 关系运算符 >=、<=、==、!=在书写时,不要用空格将 其分开,否则会产生语法错误。
–关系表达式
4.3 实现分支结构程序设计的语句
• if语句
–if语句的简单形式
if(表达式) if(表达式) 语句 语句的执行过程见图4.2: 例4.2
–if语句标准形式
if(表达式) 语句1 if(表达式) 语句1 语句2 else 语句2 语句的执行过程见图4.3: 例4.3 首页 上一页
–if语句的嵌套形式
例4.5
– 关于Switch结构的注意事项:
• switch后表达式的类型,一般为整型、字符型或枚举 类型。 • 每个case后面常量表达式的值必须互不相同。 • 把default放在最后是一种良好的程序设计习惯。 • 多个case可共有一组执行语句。 • case后常量表达式仅起语句标号的作用,并不进行条 件判断。 • switch语句中仅需执行一个分支时,须在该case后面 的语句中加上break语句,让其跳出switch结构。 • 当case后包含多条执行语句时,可以不用花括号括起 来,系统会自动识别并顺序执行所有语句。 上一页
– 逻辑表达式
逻辑表达式的值是一个逻辑值,即“真”或“假”。需要 注意 的是,在逻辑表达式的求解过程中,并不是所有的逻辑运算 符都被执行。只是在必须执行下一逻辑运算符才能求出表达 式的解时,才执行该运算符。 • a&&b&&c,当a为0时,就不再判断或计算b和c的值, 因为此时整个逻辑表达式的值已经可以确定为0。 • a‖b‖c,当a为1时,就不再判断或计算b和c的值,因 为此时整个逻辑表达式的值必为1。“&&”和“||”的结 合性是“自左向右”, “!”是“自右向左”。 因此,在使用运算符&&的表达式中,把最可能为假的条 件放在最左边;在使用运算符||的表达式中,把最可能为真 的 上一页 条件放在最左边。这样能减少程序的运行时间。
4.4 分支结构程序设计举例
例4.6 例4.7(方法1 方法2 方法3) 例4.8(方法1 方法2) 例4.9(方法1 方法2)
首页 上一页
• switch语句
形式: switch (表达式) 表达式) { case 常量表达式 :语句组 ; 常量表达式1:语句组1; case 常量表达式 :语句组 ; 常量表达式2:语句组2; …… case 常量表达式 :语句组 ; 常量表达式n:语句组n; [default: 语句组 语句组n+1;] } ; 执行过程: –先计算表达式的值。 –顺次同case后的常量表达式的值比较 ①若找到相等的常量表达式 常量表达式i,则执行该常量表达式冒号 常量表达式 后的语句组i。在执行过程中,若遇到break语句则跳出 switch 结构;否则依次执行其后的所有冒号后面的语句。 ②若找不到匹配的常量表达式的值,则执行default后面的 语句组直到结束。 上一页
关系表达式的运算结果只有两种情况: • 当关系成立时,则表达式的结果值为1(表示“真”); • 当关系不成立时,则表达式的结果值为0(表示 “假”)。 这里的0和1都被看作是整型量。 首页 上一页
• 逻辑运算符与逻辑表达式
– 逻辑运算符及其优先顺序
表4.2是逻辑运算符种类、功能及优先级别顺序。 逻辑运算符的运算规则是: • “&&”和“||”是双目运算符 “!”是单目运算符。 • 逻辑运算符的优先级与其它运算符的优先关系如下: ! →算术运算→关系运算→ && → || →赋值运算 • “&&”和“||”的结合性是“自左向右”, “!”是“自右 向左”。 表4.3是逻辑运算的真值表。 • && :当且仅当两个运算量的值均为非0时,其运算结 果值为1,其余情况均为0; • ||:当且仅当两个运算量的值均为0时,其运算结果值 为0,其余情况均为1; • !:当运算量的值为0时,运算结果为1,当运算量的值 上一页 为1时,运算结果为0。
–
条件运算符
形式: 表达式1?表达式2:表达式3 表达式1 表达式2 表达式3 其运算过程如图4.5所示。 使用条件表达式时,应注意: •条件运算符的优先级高于赋值 运算符,但低于关系运算符和 算术运算符。 •条件运算符具有右结合性,即 结合方向为“自右至左”,并允 许嵌套使用。 •在条件表达式中,当表达式2 与表达式3的类型不同时,条件 表达式的值的类型为二者中较 高的类型。 上一页
if (表达式 ) 语句 表达式1) 语句1 else if(表达式 ) 语句 (表达式2) 语句2 …… else if(表达式 ) 语句 (表达式n) 语句n else 语句 语句n+1 流程图: 例4.4
上一页
–关于if语句的注意事项
• if后面的表达式一般为关系表达式或逻辑表达式。 由于系统对if语句的处理流程是:先对表达式的值 进行判断,若为非零,则按“真”处理;若为零,则按 “假 处理。因此if后面表达式的类型可以是任意的数值类型。 • else子句不能作为单独的语句使用。 它必须是if语句的一部分,与if配对使用。 • 在if和else后面可是一个简单语句,也可是复合语句。 复合语句是用花括号括起来的多个简单语句或符合 语句。 • 在if语句的嵌套中,要注意if和else的配对关系。 从最内层开始,else 总是与它上面最近的未曾配 对的if配对。 上一页
4.1 分支结构的设计思想 4.2 实现分支结构判断条件的构成 4.3 实现分支结构程序设计的语句 4.4 分支结构程序设计举例
4.1 分支结构的设计思想
根据不同的条件,执行不同的程序流程,这就形成了所谓 的“分支”结构。 分支结构程序的设计要考虑两个方面的问题: –判断条件 判断条件是分支结构设计的关键。一个判断条件的结果只 有两种可能:条件成立和条件不成立,并由此决定了程序流程 的走向。 –实现分支结构语句的构成及选择 分支结构程序的设计就是要正确描述判断的条件,并将其 与要实现的具体工作放在分支结构语句中,实现要完成的处理。 。
首页 上一页
4.2 实算符及其优先顺序
表4.1是关系运算符种类、功能及优先级别顺序。 • 关系运算符优先级低于算术运算符,高于赋值运算符 • 关系运算符 >=、<=、==、!=在书写时,不要用空格将 其分开,否则会产生语法错误。
–关系表达式
4.3 实现分支结构程序设计的语句
• if语句
–if语句的简单形式
if(表达式) if(表达式) 语句 语句的执行过程见图4.2: 例4.2
–if语句标准形式
if(表达式) 语句1 if(表达式) 语句1 语句2 else 语句2 语句的执行过程见图4.3: 例4.3 首页 上一页
–if语句的嵌套形式
例4.5
– 关于Switch结构的注意事项:
• switch后表达式的类型,一般为整型、字符型或枚举 类型。 • 每个case后面常量表达式的值必须互不相同。 • 把default放在最后是一种良好的程序设计习惯。 • 多个case可共有一组执行语句。 • case后常量表达式仅起语句标号的作用,并不进行条 件判断。 • switch语句中仅需执行一个分支时,须在该case后面 的语句中加上break语句,让其跳出switch结构。 • 当case后包含多条执行语句时,可以不用花括号括起 来,系统会自动识别并顺序执行所有语句。 上一页
– 逻辑表达式
逻辑表达式的值是一个逻辑值,即“真”或“假”。需要 注意 的是,在逻辑表达式的求解过程中,并不是所有的逻辑运算 符都被执行。只是在必须执行下一逻辑运算符才能求出表达 式的解时,才执行该运算符。 • a&&b&&c,当a为0时,就不再判断或计算b和c的值, 因为此时整个逻辑表达式的值已经可以确定为0。 • a‖b‖c,当a为1时,就不再判断或计算b和c的值,因 为此时整个逻辑表达式的值必为1。“&&”和“||”的结 合性是“自左向右”, “!”是“自右向左”。 因此,在使用运算符&&的表达式中,把最可能为假的条 件放在最左边;在使用运算符||的表达式中,把最可能为真 的 上一页 条件放在最左边。这样能减少程序的运行时间。
4.4 分支结构程序设计举例
例4.6 例4.7(方法1 方法2 方法3) 例4.8(方法1 方法2) 例4.9(方法1 方法2)
首页 上一页
• switch语句
形式: switch (表达式) 表达式) { case 常量表达式 :语句组 ; 常量表达式1:语句组1; case 常量表达式 :语句组 ; 常量表达式2:语句组2; …… case 常量表达式 :语句组 ; 常量表达式n:语句组n; [default: 语句组 语句组n+1;] } ; 执行过程: –先计算表达式的值。 –顺次同case后的常量表达式的值比较 ①若找到相等的常量表达式 常量表达式i,则执行该常量表达式冒号 常量表达式 后的语句组i。在执行过程中,若遇到break语句则跳出 switch 结构;否则依次执行其后的所有冒号后面的语句。 ②若找不到匹配的常量表达式的值,则执行default后面的 语句组直到结束。 上一页
关系表达式的运算结果只有两种情况: • 当关系成立时,则表达式的结果值为1(表示“真”); • 当关系不成立时,则表达式的结果值为0(表示 “假”)。 这里的0和1都被看作是整型量。 首页 上一页
• 逻辑运算符与逻辑表达式
– 逻辑运算符及其优先顺序
表4.2是逻辑运算符种类、功能及优先级别顺序。 逻辑运算符的运算规则是: • “&&”和“||”是双目运算符 “!”是单目运算符。 • 逻辑运算符的优先级与其它运算符的优先关系如下: ! →算术运算→关系运算→ && → || →赋值运算 • “&&”和“||”的结合性是“自左向右”, “!”是“自右 向左”。 表4.3是逻辑运算的真值表。 • && :当且仅当两个运算量的值均为非0时,其运算结 果值为1,其余情况均为0; • ||:当且仅当两个运算量的值均为0时,其运算结果值 为0,其余情况均为1; • !:当运算量的值为0时,运算结果为1,当运算量的值 上一页 为1时,运算结果为0。
–
条件运算符
形式: 表达式1?表达式2:表达式3 表达式1 表达式2 表达式3 其运算过程如图4.5所示。 使用条件表达式时,应注意: •条件运算符的优先级高于赋值 运算符,但低于关系运算符和 算术运算符。 •条件运算符具有右结合性,即 结合方向为“自右至左”,并允 许嵌套使用。 •在条件表达式中,当表达式2 与表达式3的类型不同时,条件 表达式的值的类型为二者中较 高的类型。 上一页
if (表达式 ) 语句 表达式1) 语句1 else if(表达式 ) 语句 (表达式2) 语句2 …… else if(表达式 ) 语句 (表达式n) 语句n else 语句 语句n+1 流程图: 例4.4
上一页
–关于if语句的注意事项
• if后面的表达式一般为关系表达式或逻辑表达式。 由于系统对if语句的处理流程是:先对表达式的值 进行判断,若为非零,则按“真”处理;若为零,则按 “假 处理。因此if后面表达式的类型可以是任意的数值类型。 • else子句不能作为单独的语句使用。 它必须是if语句的一部分,与if配对使用。 • 在if和else后面可是一个简单语句,也可是复合语句。 复合语句是用花括号括起来的多个简单语句或符合 语句。 • 在if语句的嵌套中,要注意if和else的配对关系。 从最内层开始,else 总是与它上面最近的未曾配 对的if配对。 上一页