
第8章分支和循环结构的设计 8.1分支与循环结构概述 顺序结构再加上分支和循环结构。构成了程序设计中的三大基本结构。 一取分支结构与猫环结构可由判断图标◇构造,把一个判斯图标安排到流程图上,然后 将供选择的各分支路径图标一一挂到判断图标的右下方,即形成了一个基本的分支结构。 [实例8.1】中华奇石 回树-1-中华有百, 山回x Lovel 1 特能然个因 国洛神之舞 日回风 火顾序酒平 12 海神之州-大图 的响中响 由通出 函8.1例8-1-中香石程序 中华奇石 秋风落叶 闲R2例8-1-中华奇石运行效果 创建一个分支结构的基本操作步露如下: 1.指变一个判断图标◇,然后为驼命名. 2。单击它打开判断图标属性设置对话框,对其中各个选项进行设置。为程序安排好自
1 第 8 章 分支和循环结构的设计 8.1 分支与循环结构概述 顺序结构再加上分支和循环结构,构成了程序设计中的三大基本结构。 一般分支结构与循环结构可由判断图标 构造,把一个判断图标安排到流程图上,然后 将供选择的各分支路径图标一一挂到判断图标的右下方,即形成了一个基本的分支结构。 [实例 8.1] 中华奇石 图 8.1 例 8-1-中华奇石程序 图 8.2 例 8-1-中华奇石运行效果 创建一个分支结构的基本操作步骤如下: 1. 拖曳一个判断图标 ,然后为它命名。 2. 单击它打开判断图标属性设置对话框,对其中各个选项进行设置,为程序安排好自

动判新执行的分支成重复执行的循环。 3,拖曳一个群粗图标至判断图标右下方,形成一条带有方形标志囹的分支路径,然后 为它命名。 4,单击方形分支标回,打开分支属性对话糕,设置各分支图标内容的白动擦障方式 8.2判断图标及其分支路径图标设置的一般方法 在建立了包含主题文字和四块奇石小图的显示图标以及等待图标之后,我们把一个判断 图标痴曳到流程线上,命名为“顺序循环“,单击该图标,打开判断图标属性设置对话框 (Properties Decision Icon). Frapertics:Iecixiaa Iota [Eatitledl 0 51 . 厂年1+4特i山 百 Boaet Potk Botry 商8,3判肠闲标属性设置对话框1 在判断图标属性设置对话据的左部,给出了判断图标的有关信息,包括以下几项: "1D: ·Saeu ·kd ·Ref.by'a 左边的小方框显示图标的属性标志,菱形标志代表判断图标,其中的字母S、A,U, C分别代表各种不同的分支方式. 在判断图标属性对话框的中下部,是建立分支或循环结构所需要设置的关键选项。包括 以下几项: I,Rcp。在下拉菜单中给出了五种方式: ·Froed Number of Times Until All Paths Usod: Until Click/Keypress: ·Until Trues ·Dn'tRepeatr 2.Branch: Traperties Beeisian ieam [ststled 日%0 Etatled :年2 4304-51 Ee Esleslated Tok ② 4a4行 sast于tht btry 圈8,4判断闲标属性设置对话服2 ·Sequentially(s)n ·Randomly to Amy Path(AA Randomly to Unused Path (U) ·To Caleulated Path(C)n
2 动判断执行的分支或重复执行的循环。 3. 拖曳一个群组图标至判断图标右下方,形成一条带有方形标志 的分支路径,然后 为它命名。 4. 单击方形分支标志 ,打开分支属性对话框,设置各分支图标内容的自动擦除方式。 8.2 判断图标及其分支路径图标设置的一般方法 在建立了包含主题文字和四块奇石小图的显示图标以及等待图标之后,我们把一个判断 图标拖曳到流程线上,命名为“顺序循环”,单击该图标,打开判断图标属性设置对话框 (Properties: Decision Icon)。 图 8.3 判断图标属性设置对话框 1 在判断图标属性设置对话框的左部,给出了判断图标的有关信息,包括以下几项: ·ID: ·Size: ·Mod: ·Ref.by: 左边的小方框显示图标的属性标志,菱形标志代表判断图标,其中的字母S、A、U、 C分别代表各种不同的分支方式。 在判断图标属性对话框的中下部,是建立分支或循环结构所需要设置的关键选项。包括 以下几项: 1.Repeat。在下拉菜单中给出了五种方式: ·Fixed Number of Times: ·Until All Paths Used: ·Until Click/Keypress: ·Until True: ·Don’t Repeat: 2.Branch: 图 8.4 判断图标属性设置对话框 2 ·Sequentially(S): ·Randomly to Any Path(A): ·Randomly to Unused Path(U): ·To Calculated Path(C):

最下面的可选项Reset Paths on Entry,是有关随机方式的一种约定. 在判断图标属性对话框的右部,有一个关于时间的选项: 。Tme 选中它下面的可选项Show Time Remaining,程序执行时屏幕上会出现一个小网中,显示 剩余时间。 ,Eraper-tien4g1nte1e酸作备乐1 紧年甲 eat Fiaed8山safT1an3 =1A50 ② rud Beptini slly Lamt Fatha n.Eatry 图8.5例8-1列断图标属性设置 我们的程序用千展示四块中华奇石,因此应将Repeat设置为Fixed Number of Times. 然后输入次数士:程序中的显示按照因定不变的顺序,因此应将Branch设置为Se四uentially: 设置了列断图标的分支暖循环方式,还需要为列断图标挂接各分支路径图标。 -:r1 ies Bee1s有ah1i0年] ht出144 Erase Eufore Faxt SLection 面 圈凡,6分支路径图标属性设置对话图 在分支路径图标属性对话粗的中部上方,是分支路径图标的名称对话框,可按需要为它 取名。 在分支路径图标属性对话框的中下部,是选项E。在下拉菜单中给出了自动擦除此图 标内容的三种方式: Before Next Selection: Upon Exit: ·Dan't Erase: 下面还有一个可这项Pause Before Branching:当透定此项时,在执行每一条分支路径之 前暂停,最示“继续”按钮,等待用户单击后再执行, 左下角的小概显示图标的种类标志(如显示、群组等),单击它下方的O按园,开始 编铜分支路径图标内容。 在上例程序中,各分支路径图标都是群组图标,其中包含一个显示图标和一个延时等特 图标,显示图标最示一块奇石的放大图片,每条分支执行最示并停留固定时间后,应自动清 除显示内容,以继续下一条分支的执行。因此应设置Ere选项为Before Next Selection. 冲之州 年韩两年FF4年=E 面 阔足7例8-!分支路径周标属性段置
3 最下面的可选项 Reset Paths on Entry,是有关随机方式的一种约定。 在判断图标属性对话框的右部,有一个关于时间的选项: ·Time: 选中它下面的可选项 Show Time Remaining,程序执行时屏幕上会出现一个小闹钟,显示 剩余时间。 图 8.5 例 8-1 判断图标属性设置 我们的程序用于展示四块中华奇石,因此应将 Repeat 设置为 Fixed Number of Times, 然后输入次数 4;程序中的显示按照固定不变的顺序, 因此应将 Branch 设置为 Sequentially。 设置了判断图标的分支或循环方式,还需要为判断图标挂接各分支路径图标。 图 8. 6 分支路径图标属性设置对话框 在分支路径图标属性对话框的中部上方,是分支路径图标的名称对话框,可按需要为它 取名。 在分支路径图标属性对话框的中下部,是选项 Erase。在下拉菜单中给出了自动擦除此图 标内容的三种方式: ·Before Next Selection: ·Upon Exit: ·Don’t Erase: 下面还有一个可选项 Pause Before Branching,当选定此项时,在执行每一条分支路径之 前暂停,显示“继续”按钮,等待用户单击后再执行。 左下角的小框显示图标的种类标志(如显示、群组等),单击它下方的 Open 按键,开始 编辑分支路径图标内容。 在上例程序中,各分支路径图标都是群组图标,其中包含一个显示图标和一个延时等待 图标,显示图标显示一块奇石的放大图片。每条分支执行显示并停留固定时间后,应自动消 除显示内容,以继续下一条分支的执行。因此应设置 Erase 选项为 Before Next Selection。 图 8.7 例 8-1 分支路径图标属性设置

8.3 顺序分支结构 8.3.1固定循环次数的顺序分支结构 [实例82】家多饼制作秘快 学师速的末考等。。。: 图且.8例8-2-家多饼坛行效果 采用以步骤数作为国定次数的顺序循环结构 巴州2家步颜的程认, 山回 平种作 面南白中中 5 t.ipE ▣8 通出 Level 2 1.1t 图89例8-2家多饼程序 观察程序的主要部分一分支与循环结构· 国,E 日回图 1件 Level 2 ■d05-1 e Fitle Bof byis 州2家多宝状流方 1.IPR 园
4 8.3 顺序分支结构 8.3.1 固定循环次数的顺序分支结构 [实例 8.2] 家乡饼制作秘诀 图 8. 8 例 8-2-家乡饼运行效果 采用以步骤数作为固定次数的顺序循环结构。 图 8. 9 例 8-2-家乡饼程序 观察程序的主要部分——分支与循环结构

图且10分支济径图标层次参数 在这个循环结构中。从属性分支对话框中可以看出,除循环次数为步露数10、分支设置 为不白动报豫以外,判断图标与分支属性设置与上例相同。 L 程时作4面 2 thtiiad 凸料里称国 白鲨满家满 d 山 国利片等时 信场种2样 市耳 Leml 2 L中1字 山之 山 由通老 图8,1山固定改数顺序循环与顺序结构比忆 与本章例1不同,在这个程序的开始设置了一个命名为“M©”的计算图标,双击打开 计算图标的对话框,输入赋植语句,为等待时问赋初始值: p350:=2 将分支中各等特图标的等特时间全部用变量©统一表示,流程线上最后一个等待图 标的等特时间相对较长,可按时间比例设置为表达式四*3, 、:t1i+s1it【e证 11:10 511:180 口 日E国 d2004-6-3 陵:回四☒ 5 Tine itM 5+B00由 Ovtioes:Shw Comatdam 厂Chir Jtin 图及12授置暂停时间变量 8.3.2条件循环结构 [实例83)离散飞星 2 微飞星商成飞星面鹰飞里面微飞
5 图 8. 10 分支路径图标层次参数 在这个循环结构中,从属性分支对话框中可以看出,除循环次数为步骤数 10、分支设置 为不自动擦除以外,判断图标与分支属性设置与上例相同。 图 8. 11 固定次数顺序循环与顺序结构比较 与本章例1不同,在这个程序的开始设置了一个命名为“pause”的计算图标,双击打开 计算图标的对话框,输入赋值语句,为等待时间赋初始值: pause := 2 将分支中各等待图标的等待时间全部用变量 pause 统一表示,流程线上最后一个等待图 标的等待时间相对较长,可按时间比例设置为表达式 pause*3。 图 8.12 设置暂停时间变量 8.3.2 条件循环结构 [实例 8.3] 离散飞星

商8,13例8-3-肉散飞显运行数果 问3真数飞星,1 回X Lwn】1 文离数星 的响咆响南 abed0806.bap abed0101.bso 日回图 abed3001.bmp 图8,14例83-离最飞是程序 41 客飞2量 44无 thisl frat Tr字4 E ruek SegiamtilLy 厂a时时g用妇7 倒815新环条件设置 8.3.3无限循环结构 [实例84]欧洲小村看不尽 国到54然通小H看不尾,P 固回x Level 1 角汽 日回☒ Level 2 标题 白 蕾纤6 的中回中回 图系16例8--做洲小村看不尽程序 何设置无限循环结构。 打开判断图标的属性设置对话框,Repe设置为Until True,下方框中的文本是“Fale 这就是循环控制的条件
6 图 8.13 例 8-3-离散飞星运行效果 图 8.14 例 8-3-离散飞星程序 图 8.15 循环条件设置 8.3.3 无限循环结构 [实例 8.4] 欧洲小村看不尽 图 8.16 例 8-4-欧洲小村看不尽程序 如何设置无限循环结构。 打开判断图标的属性设置对话框,Repeat 设置为 Until True,下方框中的文本是“False”, 这就是循环控制的条件

47 514n:74 ■4州- 厂3,E4ai ② 周8.17无果循环的新环条件设置 活u华he illagoa 周8,18例8-4-款洲小村看不尽运行效果 毒一大地 品平毒一这据量 存字他 满星 bcd0001.bap 响中中中向 图家19例8-衣远的离胜飞星程序 8.3.4鼠标控制跳出循环结构 [实例®5)电玩烧结者
7 图 8.17 无限循环的循环条件设置 图 8.18 例 8-4-欧洲小村看不尽运行效果 图 8.19 例 8-3-永远的离散飞星程序 8.3.4 鼠标控制跳出循环结构 [实例 8.5] 电玩终结者

周家0例8-5地规锋结者运行效果 山回× @后买深特景,州 Ll I 的盒.1f 的前4 等环-星州中雨 意白的回定 日图 有 2 图象2引例8一子地玩蜂结者程序 在顺序循环结构中,选释Repe为Until Click/Keypress,实现福环直到单击鼠标或按下 键位上任意一键为止: ”:4s:ae用属年位数中题 .554 无佛耳-起标4 514 Bvil Cliek/Eogrens 厂gtw:s4i时E ② 厂a4tFaa4ay 图8.2服标境健登控制洗出福环设置 8.4随机选择分支结构 Auwe提铁了两种随机选择分支结构,它们是随机可重复分支结构和随机不可重复 分支结构
8 图 8.20 例 8-5-电玩终结者运行效果 图 8.21 例 8-5-电玩终结者程序 在顺序循环结构中,选择 Repeat 为 Until Click/Keypress,实现循环直到单击鼠标或按下 键盘上任意一键为止。 图 8.22 鼠标或键盘控制跳出循环设置 8.4 随机选择分支结构 Authorware 提供了两种随机选择分支结构,它们是随机可重复分支结构和随机不可重复 分支结构

8.4.1随机可重复分支结构 在Banh的选项中选取tandomly to Amy Path方式,规定程序将从判断图标右下方的各 分支路径图标中随机地选择一条分支执行 如果希望每次进入同一个判断图标产生不同的随机分支选择序列,可加选Reset Paths o用 Ey进项,这样在每一次进入判断图标前将重新初始化设置有关的变量和随机信号潭。 [实例86】夏夜繁星 图苏幻例8-心夏微架是话行效果 回到8-6-夏夜整星,1型 回X Level I 南空 中南中中中 @1 山口☒ 图R24例8-6-夏夜繁星程序 从标记中的“A”可知是一个随机可重复分支结构。执行时每次将选取任意一条分支,如 此循环住复。 将分支方式选取为“Randemly tony Path”,判断图标的标记变为f代表“Ay”的今然 后将重复方式设置为“Until True”并设置结柬条件“Flx”,就构成了一个随机可重复的无 限循环分支结构
9 8.4.1 随机可重复分支结构 在 Branch 的选项中选取 Randomly to Any Path 方式,规定程序将从判断图标右下方的各 分支路径图标中随机地选择一条分支执行。 如果希望每次进入同一个判断图标产生不同的随机分支选择序列,可加选 Reset Paths on Entry 选项,这样在每一次进入判断图标前将重新初始化设置有关的变量和随机信号源。 [实例 8.6] 夏夜繁星 图 8.23 例 8-6-夏夜繁星运行效果 图 8. 24 例 8-6-夏夜繁星程序 从标记中的“A”可知是一个随机可重复分支结构,执行时每次将选取任意一条分支,如 此循环往复。 将分支方式选取为“Randomly to Any Path”,判断图标的标记变为代表“Any”的 ,然 后将重复方式设置为“Until True”并设置结束条件“False”,就构成了一个随机可重复的无 限循环分支结构

口6 21at74 Bd2004-64 】Tn 厂aeT4wal 瓦 to Fath 周8,药随机可重复分支设置 8.4.2随机不可重复分支结构 在判晰图标属性设置对话都的Breh意项中选数Randomly to Unused Pach方式,规定程 序将从判断图标右下方的各分支路径图标中面机烛选释一条未执行过的分支执行。 [实例8.刀中国古代发明 回剑8--中国古代发明.7 回X Level 1 霄量望西 随机选择不间分变 而南向向 画单动俊 ▣☒ Lerel 2 地助仪,pg 图82西例8-7一中国吉代发明程序 从标记中的“U”可知是一个随机不可重复分支结构,执行时每次将选数一条未敲执行过 的分支,全部执行完毕后结束。 在判断图标属性对话框中将分支方式选取为“Randomly to Unused Path”,判断图标的标 记变为代表“Unud”的少然后将重复方式设置为“Until All Paths Used”,使循环进行到 所有的分支都被执行过为止,如此就构成了一个随机不可重复的分支结构。 ,力r1+4111c能视法招不分支 1:45 闻机透环风份支 3004- ② 1e4a灯tad业 厂nta桶y 留且置随机不可重复分支设置 公
10 图 8.25 随机可重复分支设置 8.4.2 随机不可重复分支结构 在判断图标属性设置对话框的 Branch 选项中选取 Randomly to Unused Path 方式,规定程 序将从判断图标右下方的各分支路径图标中随机地选择一条未执行过的分支执行。 [实例 8.7] 中国古代发明 图 8.26 例 8-7-中国古代发明程序 从标记中的“U”可知是一个随机不可重复分支结构,执行时每次将选取一条未被执行过 的分支,全部执行完毕后结束。 在判断图标属性对话框中将分支方式选取为“Randomly to Unused Path”,判断图标的标 记变为代表“Unused”的 ,然后将重复方式设置为“Until All Paths Used”,使循环进行到 所有的分支都被执行过为止,如此就构成了一个随机不可重复的分支结构。 图 8. 27 随机不可重复分支设置