![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=1739905684-c9lpjvB1jJ2k0EeOII8OZbeQ7DzaiAce-0-eef1b964aeb073359d9bd1bcc950f841)
执行结果是按顺序先输出“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=1739905684-RC47z6QMswJmekuOb5iMNhuDgvMBepGb-0-ea74024e44e8003cbc3a1a615d7b03b0)
图3.1 顺序结构程序执行流程
![](https://epubservercos.yuewen.com/F329F6/23721607801994206/epubprivate/OEBPS/Images/Figure-P63_45093.jpg?sign=1739905684-lM84GJr5ZF7RBWhh8FJ2i6omMony86VF-0-cef9cbfcdc728f2dec340f472896cca4)
图3.2 选择结构程序执行流程
这里简单演示一个范例,用到的if语句后面章节才会讲到,范例代码不强制要求掌握:
![](https://epubservercos.yuewen.com/F329F6/23721607801994206/epubprivate/OEBPS/Images/Figure-p63_85315.jpg?sign=1739905684-uxXZ3IeZUL30NW3jANKHVUjQNe8nFQt5-0-3653d87f0d165ba1129a7b13c65cb577)
分析上面这段代码,条件肯定为真,所以会执行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=1739905684-wuGjmymv1BiPua6ZjZAUhphAYJnhOME6-0-1dbb08be419e32f2bfda498aaf9bb9fd)
图3.3 多分支选择结构程序执行流程
多分支选择结构的典型语句是switch语句,这里简单演示一个范例,用到的switch语句后面章节才会讲到,范例代码不强制要求掌握:
![](https://epubservercos.yuewen.com/F329F6/23721607801994206/epubprivate/OEBPS/Images/Figure-p64_85319.jpg?sign=1739905684-wtTVXUe5CD9Jr6FnI8NAkxAYcfThDSQk-0-e1bc21289a918b9455e17f220d17b220)
3.循环结构
循环结构分为两种,即当型循环结构和直到型循环结构。
![](https://epubservercos.yuewen.com/F329F6/23721607801994206/epubprivate/OEBPS/Images/Figure-P64_45133.jpg?sign=1739905684-1i1lPAvsXZ3t6qwpes3CZmdnoGb9BzEW-0-ff97c20bcb228c56c58eefb62f901688)
图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=1739905684-Xbf0EI3vXCH3L2EOPLvGCMKe0Q1S1rv1-0-3cd1736a6c7d0396c0faded07fd27df9)
(2)直到型循环结构。do…while语句是典型的直到型循环结构语句:先执行一次A操作,再判断条件P是否为真,如果为真则继续执行A操作(反复执行A操作),直到条件P为假,如图3.5所示。有两点说明:
![](https://epubservercos.yuewen.com/F329F6/23721607801994206/epubprivate/OEBPS/Images/Figure-P65_45158.jpg?sign=1739905684-S1HvzK15tb6KKvTHGtJ5uVztLRl0jPY7-0-4b58ff38549f015d3c27ed251494b27e)
图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=1739905684-0NpyxBI6vChAPC89S1Tmp0PSJiWImzeV-0-d2fd067c4bd10820844974cce05bcfba)
建议在程序设计中始终采用结构化的程序设计方法,养成良好的程序设计和书写习惯。