Logo

郎哥编程

嵌套条件结构

2019-09-26 149
前面介绍了简单条件结构和多重条件结构,这两种条件结构可以解决很多条件判断问题。但还存在一种嵌套的判断情况,即只有当前提条件满足时,才判断后续条件是否满足。


阿萌一家准备星期天去青岛玩,前提条件是如果星期日天气晴朗,且能买到去青岛的高铁票就去青岛玩,否则就在家休息。

01.png


在上面的图中,有两个条件:第一个条件是星期日天气晴朗;第二个条件是买到去青岛的高铁票。第一个条件是前提条件,这个条件必须满足,如果不满足这个条件,第二个条件就不用考虑了。因此第二个条件是嵌套在第一个条件内,第一个条件是外层条件,第二个条件是内层条件。

02.png


用Python语言来实现嵌套条件结构,就是在已有if或else语句中插入另一个if-else条件结构,实现条件的嵌套判断。

03.png


嵌套条件结构通过缩进来表示嵌套层次,内层条件结构的if和else语句要比外层的if和else语句缩进相等数量的空格(直接使用Tab键缩进也可以)。外层else语句内的内层条件结构可以省略。


04.png


阿萌对问题进行了分析:
程序可以使用input函数获取用户输入的整数,因为input函数把用户所有的输入都转换为字符串,因此还需要使用int函数将字符串转换为整数,用户输入的整数可以分别赋值给变量a和b。

05.png


判断用户输入的两个整数是否相等,可以使用if-else条件结构来判断a和b是否相等,根据a和b是否相等,程序分成两种情况进行处理。

06.png


当a和b不相等时,属于不相等情况处理,这时就要判断出a和b的最大值。在这种情况下,需要在原有的if语句内,嵌套简单条件结构来判断a和b的大小。

此时,原有的if语句称为外层if语句,用来判断a和b大小的if语句称为内层if语句,也可以说内层if语句是嵌套在外层if语句之内的。if语句理论上可以多层嵌套,但多层嵌套会导致代码过于复杂,代码结构也不清晰。因此嵌套条件结构一般以两层为主。

07.png


当a和b相等时,属于相等情况处理,这种情况程序处理比较简单,程序直接使用print函数输出a和b相等即可。

08.png


阿萌根据问题分析绘制了流程图:

09.png


流程图有两个条件判断框,第一个判断框用于判断变量a和b是否相等,属于外层条件判断,第二个判断框在a等于b的条件下,判断出a和b的最大值,属于内层条件判断。

有了流程图,阿萌开始编写代码了。他启动Python IDLE,在IDLE的Shell窗口新建一个代码文件,在新建的代码编辑窗口编写代码。

10.png


代码解读
在上面的代码中,首先使用input函数获取用户输入的两个整数,并分别赋值给变量a和b,此时a和b存储的内容类型为字符串,需要使用int函数将a和b存储的字符串转换为整数。

两个整数大小判断代码使用了嵌套条件结构。嵌套条件结构由外层if-else结构和内层if-else结构组成。外层if-else结构用于判断用户输入的两个整数是否相等:如果a和b不相等,使用内层if-else结构判断两个数值的大小,并输出较大的数;如果a和b相等,使用print函数输出两数相等。

代码编写完成,阿萌把代码保存到D盘的Python目录,保存的文件名称是max.py。

11.png


从输出结果可以看出:用户分别输入35和20两个整数时,程序输出两数中最大的数;用户输入19和19两个整数时,程序输出两个数相等。

课程小结

嵌套条件结构实际上就是在原有的if-else结构内嵌套使用if-else结构,原if-else结构的if语句或else语句都可以在语句内部嵌套使用if-else结构。

需要注意的是,嵌套条件结构理论上可以多层嵌套,但多层嵌套会导致代码过于复杂,代码结构也不清晰。因此嵌套条件结构一般以两层为主。

上机练习

编写一个程序,要求用嵌套条件结构实现。提示用户输入用户名,然后再提示输入登录密码。如果用户名是"admin"并且密码是“888888”,则提示用户登录成功,否则提示用户登录失败。

提示:程序模拟用户登录情况的处理,程序可以先创建两个变量用于存储程序预定义的用户名和登录密码。用户输入用户名和登录密码后,程序首先判断用户输入的用户名和程序预定义的用户名是否一致,如果用户输入的用户名正确,再判断用户输入的登录密码和程序预定义的密码是否一致。因此用户登录情况的处理,可以使用嵌套条件结构来实现。


代码在线纠错(通义千问 qwen-max)

支持粘贴多个代码文件,提交后由阿里云通义千问自动分析代码漏洞、语法错误、逻辑问题并给出修改建议。
您已解锁 AI 代码纠错功能,可正常使用!

评论区

登录 后发表评论
暂无评论