![C++新经典](https://wfqqreader-1252317822.image.myqcloud.com/cover/184/44510184/b_44510184.jpg)
3.1.2 程序的三种基本结构
软件开发的过程中,讲究结构化程序设计方法,目的是使程序结构清晰、可读性强,提高程序设计的质量。程序的基本结构分三种。
1.顺序结构
如图3.1所示,先执行A操作,再执行B操作。
如下范例中的语句是顺序执行,也就是说,语句是从上到下、从左到右逐条执行的:
![](https://epubservercos.yuewen.com/F329F6/23721607801994206/epubprivate/OEBPS/Images/Figure-p63_85314.jpg?sign=1739351918-IrQJH3t82sGOs8ev8XcsMWm8LE1786Iq-0-c29bc5993253e660520ad581baf837a3)
执行结果是按顺序先输出“1”,再输出“2”,最后才输出“3”。
2.选择结构
如图3.2所示,菱形框中的P代表一个条件,当条件P为真(成立)时执行A操作,否则执行B操作,只能执行A操作或B操作之一。例如玩电子游戏时,如果怪物的血大于0,则怪物咬玩家一口(执行A操作),否则怪物尸体消失(执行B操作)。
![](https://epubservercos.yuewen.com/F329F6/23721607801994206/epubprivate/OEBPS/Images/Figure-P63_45089.jpg?sign=1739351918-p9TzK5sUHXs1QFEpp7SjGwvVySFQIcFl-0-0a0be57f226dbf100211086bafea3e2d)
图3.1 顺序结构程序执行流程
![](https://epubservercos.yuewen.com/F329F6/23721607801994206/epubprivate/OEBPS/Images/Figure-P63_45093.jpg?sign=1739351918-m2zM3rpEkIJov5gu5xRown8A24GUSV7t-0-941008c2ec990da5040f5128528c3f9d)
图3.2 选择结构程序执行流程
这里简单演示一个范例,用到的if语句后面章节才会讲到,范例代码不强制要求掌握:
![](https://epubservercos.yuewen.com/F329F6/23721607801994206/epubprivate/OEBPS/Images/Figure-p63_85315.jpg?sign=1739351918-Fv18qPWYg2ib3SwrcmA1wGWRZ5Akgi1m-0-c8dd1496411d8c6bf2791afa6e0ed344)
分析上面这段代码,条件肯定为真,所以会执行A操作,也就是输出“3>1”,这就是选择结构,两种操作选择其中之一执行。
此外,特别值得一提的是,选择结构可以派生出多分支选择结构,如图3.3所示。其中,k代表一个值,k值将与k1,k2,…,kn等多个值进行比较,如果与其中某个值相等,这里假设k与k2值相等,那么程序会选择执行k2所对应的一系列操作(图3.3中的A2操作)。
![](https://epubservercos.yuewen.com/F329F6/23721607801994206/epubprivate/OEBPS/Images/Figure-P64_45115.jpg?sign=1739351918-Jw5e3bEP5W8n50gZubiBwUxpRCIAKJmE-0-13bcc03149e163f92b3483b70f339b83)
图3.3 多分支选择结构程序执行流程
多分支选择结构的典型语句是switch语句,这里简单演示一个范例,用到的switch语句后面章节才会讲到,范例代码不强制要求掌握:
![](https://epubservercos.yuewen.com/F329F6/23721607801994206/epubprivate/OEBPS/Images/Figure-p64_85319.jpg?sign=1739351918-vpFhdz8tdw6vRsADsYPWYA9OvqIgVOK5-0-f3a1f52edb53cecf2acde79a0b4eba19)
3.循环结构
循环结构分为两种,即当型循环结构和直到型循环结构。
![](https://epubservercos.yuewen.com/F329F6/23721607801994206/epubprivate/OEBPS/Images/Figure-P64_45133.jpg?sign=1739351918-ub50XqrdYXCWxfVnloxllb2jACsXNcIJ-0-65185c95bed87933f60aa5a4494cf9f2)
图3.4 当型循环结构程序执行流程
(1)当型循环结构。while语句是典型的当型循环结构语句:先判断条件P,再决定是否执行A操作,当条件P为真时,反复执行A操作,直到条件P为假时才停止执行A操作(停止循环)并继续往后执行其他代码,如图3.4所示。
这里演示一个while语句范例。while语句后面章节才会讲到,范例代码不强制要求掌握:
![](https://epubservercos.yuewen.com/F329F6/23721607801994206/epubprivate/OEBPS/Images/Figure-p64_85320.jpg?sign=1739351918-R9WS25MH9f23SUq2BXYfP545lzxnoDiy-0-61240dc364c36cd3ea0489d4a8d1afe0)
(2)直到型循环结构。do…while语句是典型的直到型循环结构语句:先执行一次A操作,再判断条件P是否为真,如果为真则继续执行A操作(反复执行A操作),直到条件P为假,如图3.5所示。有两点说明:
![](https://epubservercos.yuewen.com/F329F6/23721607801994206/epubprivate/OEBPS/Images/Figure-P65_45158.jpg?sign=1739351918-LgRXTdOYr2BVJ1KloJHTk93BCqG8k8Bz-0-52622bb441a36e3c90f19d08d5ad81ac)
图3.5 直到型循环结构程序执行流程
· 可以看到,直到型循环结构至少会执行一次A操作(当型循环结构如果条件P不成立,则可能一次A操作也不执行)。
· 有些书上说判断P条件是否为假,为假则继续执行A操作。但是,C语言中的do…while语句要求条件P必须为真才会继续执行A操作。
这里演示一个do…while语句范例。do…while语句后面章节才会讲到,范例代码不强制要求掌握:
![](https://epubservercos.yuewen.com/F329F6/23721607801994206/epubprivate/OEBPS/Images/Figure-p65_85324.jpg?sign=1739351918-rpuPIL55kffx0SyISx27MUzt8hpAgkwi-0-182f5005a247aff00dbe0eae35627639)
建议在程序设计中始终采用结构化的程序设计方法,养成良好的程序设计和书写习惯。