理论教育 使用Do循环结构-计算机程序设计语言Visual Basic

使用Do循环结构-计算机程序设计语言Visual Basic

时间:2023-11-19 理论教育 版权反馈
【摘要】:Do While|Until...Loop循环先判断条件,然后在条件满足的时才执行循环体,否则不执行。Do循环可以嵌套,其规则与For...Next循环相同。图8-10例8.5运行结果使用Do循环输出100~200之间不能被3整除的数,运行界面如图8-11所示。

使用Do循环结构-计算机程序设计语言Visual Basic

一、Do循环结构

Do循环可以分为前测型循环和后测型循环两种结构。

1.前测型循环结构

语法格式:

图8-3 前测当型循环

图8-4 前测直到型循环

说明:当型循环是当循环条件为True时进入循环;直到型则是循环条件为False进入循环。

2.后测型循环结构

语法格式:

图8-5 后测当型循环

图8-6 后测直到型循环

说明:前测型循环是先判断循环条件,循环体执行次数≥0;后测型循环是先执行循环体,循环体执行次数≥1。

【例8.1】单击窗体,要求在窗体上显示6行星号。

方法一:前测型当型循环。

将上面的代码改为前测型直到型循环、后测型当型循环和后测型直到型循环。

方法二:前测型直到型循环。

方法三:后测型当型循环。

方法四:后测型直到循环。

注意:

(1)以上循环语句都包含:变量初始化;判断条件;循环体语句和修改变量这四个步骤。在循环体中,至少要有一条语句使得循环趋向于结束,使循环语句在有限的时间内执行完毕,否则将会出现“死循环”。

(2)Do、Loop及While、Until都是关键字。“语句块”是需要重复执行的一个或多个语句,即循环体。“循环条件”是一个逻辑条件。

(3)While是条件为True时执行循环,而Until则是在条件变为True之前重复。

(4)Do While|Until...Loop循环先判断条件,然后在条件满足的时才执行循环体,否则不执行。

(5)Do Loop循环和While循环一样,如果条件总是成立,循环也可能陷入死循环,Do在这种情况下,可以用Exit Do语句跳出循环,一个Do循环可以有一个或多个Exit Do语句,并且Exit Do可以出现在循环体的任意地方结束循环,并把控制转移到Do循环后面的语句,用Exit Do语句只能从它所在循环中退出。

(6)Do循环可以嵌套,其规则与For...Next循环相同。

二、Do循环编程实例

【例8.2】我国有13亿人口,按人口年增长0.8%计算,多少年后我国人口超过26亿。

分析:解此问题两种方法,可根据公式:26=13*(1+0.008)n直接利用标准对数函数求得,也可利用循环求得。程序如下:

图8-7 例8.2运行结果

【例8.3】编写一个程序,实现当单击鼠标后如下显示:

(www.daowen.com)

图8-8 例8.3运行结果

【例8.4】编写一个程序计算一只猴子采一堆桃子,第一天吃了一半不过瘾又多吃了一个。这样每天都是吃掉一半后多吃一个,结果到第10天发现只剩下1个桃子,求猴子第一天共采了多少个桃子?

分析:这是一个“递推”问题,先从最后一天推出倒数第二天的桃子,再从倒数第二天的桃子推出倒数第三天的桃子……。设第n天的桃子为Xn,那么它是前一天的桃子数的Xn-1的一半减1,即Xn=(Xn-1+1)*2。“递推法”又称为“迭代法”,其基本思想是把一个复杂的计算过程转化为简单过程的多次重复。每次重复都从旧值的基础上递推出新值,并由新值代替旧值。

图8-9 例8.4运行结果

【例8.5】编写一个程序计算1+2+......+n,其中n由滚动条来选定(1≤n≤500)。

图8-10 例8.5运行结果

【例8.6】使用Do循环输出100~200之间不能被3整除的数,运行界面如图8-11所示。

图8-11 例8.6运行结果

【例8.7】设计采用欧几里德算法求解两个自然数的最大公约数的程序。

算法分析:“欧几里德算法”。

①输入两个自然数m、n;

②求m除以n的余数r;

③m←n;

图8-12 例8.7程序流程

④n←r;

⑤若r≠0,则重复执行②③④(循环),否则转⑥;

⑥输出m和n的最大公约数m。

界面设计:利用文本框来接收数据和显示结果,利用命令按钮的单击事件完成最大公约数的计算。

Private Sub Command1_Click()

Dim m As Integer,n As Integer,r As Integer

图8-13 例8.7运行结果

【例8.8】设计一个小程序,能够实现接收若干的专家的考评打分,输入-1表示打分结束,最后计算出平均考评分。

界面设计:

由于要接收的数据是无法预知其个数,所以不适合利用文本框来接收数据,所以采用输入函数InputBox,结合循环实现;利用窗体的单击事件完成总分和平均分的计算,并在窗体上显示结果。

图8-14 例8.8程序流程

免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。

我要反馈