7.2Do…Loop循环结构(课件)-《程序设计基础(Visual Basic)》同步教学(电子工业出版社)

2024-08-10
| 25页
| 81人阅读
| 19人下载
普通

内容正文:

项目7 循环结构 项目导入 循环控制结构是程序中的另一个基本结构。 在实际问题中,常常需要进行大量的重复处理,循环结构可以使程序设计者只写很少的语句,就可以让计算机反复执行,从而完成大量类似的计算。 Visual Basic 提供了 For 语句、Do … Loop 语句和 While 语句实现循环结构。 项目7由4个任务组成,分别是For…Next 循环语句、Do循环语句、While…Wend循环语句,以及循环的嵌套。 2 项目目标 掌握 For...Next 循环语句的格式及使用 掌握Do...Loop 循环语句的格式及使用 掌握While...Wend 循环语句的格式及使用 掌握多重循环的执行过程 3 任务2 Do…Loop循环结构 任务目标 掌握Do…Loop 语句循环的4种结构及执行过程。 能够运用Do循环编写简单的循环结构程序。 任务实施 Do…Loop 语句是最常用且较有效的循环结构,它有以下4种结构。 4 1.Do While…Loop语句 (1)格式: Do While <条件> [语句组] Loop (2)执行过程: 当条件为True时,循环继续进行,直到条件变为False 为止。 5 【例7.4】 编程计算2×4×6×8×10的值。 程序代码如下: Private Sub Form_Click() Dim I As Integer, Sum As Long I=2 'I的初值赋为1 P=1 Do While I<=10 P=P*I I=I+2 Loop Print P End Sub 6 (1)格式: Do Until <条件> [语句组] Loop (2)执行过程: 当条件为False时,循环继续进行,直到条件变为True为止。 7 2.Do Until…Loop语句 例如上例可以改写为: Private Sub Form_Click() Dim I As Integer, Sum As Integer I=2 P=1 Do Until I>10 P=P*I I=I+2 Loop End Sub 8 【例7.5】 输入一个班的学习成绩,统计其中及格的学生人数(大于或等于60分的为及格),并计算出全班的平均分数。学生人数不定,输入负数时截止。 9 (1)分析: 由于学生人数不定,用For循环无法确定循环次数,但题目给了循环终止的条件:输入成绩为负数时截止,用Do循环比较简便。 例7.5 (2)创建用户界面,设置属性如图7-6。 10 (3)编写事件代码。 编写“输入成绩”命令按钮的Click事件代码: Private Sub Command1_Click() Dim Score As Single, PassN As Integer, n As Integer, Sum As Single Sum=0:PassN=0:n=0 Score=Val(InputBox("请输入学生成绩:")) Do While Score>=0 ' 成绩为负数时停止循环 Score=Val(InputBox("请输入学生成绩:")) If Score>=60 Then PassN=PassN+1 ' 统计及格人数 n=n+1 ' 统计总人数 Sum=Sum+Score ' 统计总分 Loop Ave=Sum/n Text1.Text=Str(n) Text2.Text=Str(PassN) Text3.Text=Str(Ave) End Sub 11 运行程序,结果如图7-7所示。 12 【例7.6】计算1+1/3+1/5+……+1/(2N+1),直到1/(2N+1)小于10-5。 13 分析: 题目属于“累加问题”,由于累加的终止值不确定,用For循环无法确定循环次数,但题目给了循环终止的条件:直到1/(2N+1)小于10-5,可以用Do…Until循环来完成。 程序代码如下: Private Sub Form_Click() sum=0:n=1:t=1/n Do Until t<0.00001 sum=sum+t n=n+2 t=1/n Loop Print"N=";n Print"sum=";sum End Sub 14 运行程序,结果如图7-8所示。 3.Do…Loop While语句 (1)格式 Do [语句组] Loop While <条件> (2)执行过程 当条件为True时,循环继续进行,直到条件变为False为止。 15 【例7.7】运行以下程序,和Do While…Loop语句比较,执行过程有什么不同。 16 Private Sub Form_Click() Dim I As Integer I=6 Do Print I I=I+1 Loop While I<=5 End Sub 程序的输出结果为: 6 执行过程有什么不同? 4.Do…Loop Until语句 (1)格式: Do [语句组] Loop Until <条件> (2)执行过程: 当条件为False时,循环继续进行,直到条件变为True为止。 17 【例7.8】运行以下程序,和Do Until…Loop语句比较,执行过程有什么不同。 Private Sub Form_Click() Dim I As Integer I=6 Do Print I I=I+1 Loop Until I>5 End Sub 18 程序输出结果为: 6 执行过程有什么不同? 19 (1)创建用户界面如图7-9 。 【例7.9】设计一个程序,用来计算银行存款所得。已知银行利率为3.85%,计算多少年后存款总额能翻一番。 (2)设置属性。 (3)编写事件代码。 编写“计算”命令按钮的Click事件代码: Private Sub Command1_Click() Dim x As Single,n As Integer x=Val(Text1.Text) a=x n=0 Do x=x*(1+0.0385) n=n+1 Loop Until x>=2*a Label1.Caption=n&"年后存款总额达到"&x&"元" End Sub 20 运行程序,结果如图7-10所示。 21 【例7.10】编程实现判断用户输入的数是否为素数。 22 (1)创建用户界面如图7-11。 (2)设置属性 23 (3)编写事件代码。 编写“判断”命令按钮的Click事件代码: Private Sub Command1_Click() Dim n As Integer, k As Integer, flag As Boolean, i As Integer n=Val(Text1.Text) k=Int(Sqr(n)) flag=False i=2 Do While i<=k And flag=False If n Mod i=0 Then flag=True Else i=i+1 End If Loop If flag=False Then Label1.Caption=n&"是素数" Else Label1.Caption=n&"不是素数" End If End Sub 24 运行程序,结果如图7-12所示。 课堂反馈: 设有一张厚为x mm,面积足够大的纸,将它不断对折,求对折多少次后,其厚度可达珠穆朗玛峰的高度(8848m)? 25 $$

资源预览图

7.2Do…Loop循环结构(课件)-《程序设计基础(Visual Basic)》同步教学(电子工业出版社)
1
7.2Do…Loop循环结构(课件)-《程序设计基础(Visual Basic)》同步教学(电子工业出版社)
2
7.2Do…Loop循环结构(课件)-《程序设计基础(Visual Basic)》同步教学(电子工业出版社)
3
7.2Do…Loop循环结构(课件)-《程序设计基础(Visual Basic)》同步教学(电子工业出版社)
4
7.2Do…Loop循环结构(课件)-《程序设计基础(Visual Basic)》同步教学(电子工业出版社)
5
7.2Do…Loop循环结构(课件)-《程序设计基础(Visual Basic)》同步教学(电子工业出版社)
6
由于学科网是一个信息分享及获取的平台,不确保部分用户上传资料的 来源及知识产权归属。如您发现相关资料侵犯您的合法权益,请联系学科网,我们核实后将及时进行处理。