第3章控制结构ppt课件_第1页
第3章控制结构ppt课件_第2页
第3章控制结构ppt课件_第3页
第3章控制结构ppt课件_第4页
第3章控制结构ppt课件_第5页
已阅读5页,还剩45页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、 三种根本构造的共同特点: 只需一个入口,一个出口。 无死语句,所谓“死语句是指一直不执行的语句。 无死循环,即循环次数是有限的。 顺序构造是程序中最简单、最根本的构造。在顺序构造中,程序的执行过程是从上往下一行一行地执行。执行的顺序与程序中语句的陈列顺序一样。分析:该题是数学中的一个分段函数,它表示当时,用公式来计算y的值;当x 0时,用公式 y = 1 - 3 x 来计算y的值。在选择条件时,我们即可以选择作为条件,也可以选择 x = 2 Then y = x * x + 3 * x Else y = 1 - 3 * x Text2.Text = yEnd Sub多行IF语句格式为:If

2、Then ElseIf Then ElseIf Then Else End If执行过程:Visual Basic首先测试条件1,假设它为False,Visual Basic就测试条件2,依次类推,直到找到一个为True的条件。当它找到一个为True的条件时,Visual Basic就会执行相应的语句块,然后执行End If后面的代码。作为选择,可以包含Else语句块,假设一切条件都为False,那么执行Else语句块。我们把例3-2用多行If语句完成,程序代码如下:Private Sub Command1_Click() Dim x As Single, y As Single x = Te

3、xt1.Text If x = 2 Then y = x * x + 3 * x Else y = 1 - 3 * x End If Text2.Text = yEnd Sub 【例3-3】输入学生成果百分制,判别该成果的等级优、良、中、及格、不及格。界面设计略,程序代码如下:Private Sub Command1_Click() Dim score As Single, temp As String score = Val(Text1.Text) temp = 成果等级为: If score 0 Then Label2.Caption = 成果出错 ElseIf score 60 Then

4、 Label2.Caption = temp + 不及格 ElseIf score = 69 Then Label2.Caption = temp + 及格 ElseIf score = 79 Then Label2.Caption = temp + 中 ElseIf score = 89 Then Label2.Caption = temp + 良 ElseIf score z * 1.1 Then体重高于规范体重*1.1 Label5.Caption = 偏胖,留意节食 ElseIf y z * 0.9 Then体重低于规范体重*0.9 Label5.Caption = 偏瘦,添加营养 E

5、lse其他为正常 Label5.Caption = 正常,继续坚持 End IfEnd Sub【例3-5】编写程序求一元二次方程式的根,用InputBox函数输入a、b、c,计算结果经过MsgBox函数显示。程序代码如下:Private Sub Form_Click() Dim a As Single, b As Single, c As Single Dim d As Single, x1 As Single, x2 As Single a = InputBox(a=) b = InputBox(b=) c = InputBox(c=) d = b * b - 4 * a * c If d

6、0 Then MsgBox (方程无实根!) Else If d = 0 Then x1 = -b / (2 * a) MsgBox (X1=X2= & x1) Else x1 = (-b + Sqr(d) / (2 * a) x2 = (-b + Sqr(d) / (2 * a) MsgBox (X1= & x1 & X2= & x2) End If End IfEnd SubSelect Case语句的语法格式如下:Select Case Case Case Case Else End Select执行流程:先对“测试表达式求值,然后将测试表达式的值按从上到下的顺序与每一个Case的表达式

7、列表值进展比较。假设相符,就执行该Case分支的语句块,并把控制转到End Select后面的语句;假设没有找到相符,那么执行与Case Else子句有关的语句块,然后把控制转到End Select后面的语句。【例3-6】用Case语句实现例3-3所完成的功能。程序代码如下:Private Sub Command1_Click() Dim score As Integer, temp As String score = Val(Text1.Text) temp = 成果等级为: Select Case score Case 0 To 59 Label2.Caption = temp + 不及格

8、 Case 60 To 69 Label2.Caption = temp + 及格 Case 70 To 79 Label2.Caption = temp + 中 Case 80 To 89 Label2.Caption = temp + 良 Case 90 To 100 Label2.Caption = temp + 优 Case Else Label2.Caption = 成果出错 End SelectEnd Sub 【例3-7】输入年、月份,输出该月的天数。分析:假设该月是1、3、5、7、8、10或12月份,那么就有31天;假设该月是4、6、9或11月份,那么就有30天;而假设是2月份,

9、还要看该年能否为闰年,闰年29天,否那么为28天。判别闰年的条件是y代表年份:y Mod 4 = 0 And y Mod 100 0 Or y Mod 400 = 0代码如下:Private Sub Command1_Click() Dim y As Integer, m As Integer, d As Integer y = InputBox(请输入年份:) m = InputBox(请输入月份:) Select Case m Case 1, 3, 5, 7, 8, 10, 12 d = 31 Case 4, 6, 9, 11 d = 30 Case 2 If y Mod 4 = 0 An

10、d y Mod 100 0 Or y Mod 400 = 0 Then d = 29 Else d = 28 End If End Select Print y; 年; m; 月有; d; 天End Sub【例3-8】将一个十六进制符号转换为十进制数值,运转效果如图3-4所示。代码如下:Private Sub Command1_Click() Dim s As String, n As Integer s = Text1.Text Select Case s Case a, A n = 10 Case b, B n = 11 Case c, C n = 12 Case d, D n = 13

11、Case e, E n = 14 Case f, F n = 15 Case Else n = Val(s) End Select Text2.Text = nEnd Sub 3.3.1 ForNext循环 语法格式如下: For = To Step Exit For Next 执行过程:首先将赋值给,然后判别能否“超越,假设为True时,那么终了循环,执行Next后面的下一条语句;否那么,执行内的语句,再将自动按添加或减少,再重新判别当前的值能否“超越,假设为True时,那么终了循环,否那么反复上述过程,直到其结果为真。3.3.1 ForNext循环 这里所说的“超越有两种含义,当步长为正值

12、时,检查的值能否大于;当步长为负值时,检查的值能否小于。 关于ForNext语句的几点阐明: 1“初值、“终值和“步长均是数值表达式,不一定是整数,还可以是小数。 2假设“步长为1,那么Step可以省略。 3关于Exit For:循环中可以在任何位置上放置恣意个Exit For语句,以随时退出循环。Exit For经常在条件判别之后运用,例如,IfThen能将控制权转移到紧接在Next之后的语句。 4循环次数的计算公式为:循环次数=Int(终值-初值)/步长+1。3.3.1 ForNext循环【例3-9】计算1100之间自然数之和。程序代码如下:Private Sub Form_Click()

13、 Dim i As Integer, sum As Integer For i = 1 To 100 sum = sum + i sum起到了累加器的作用 Next i Print sumEnd Subsum变量的作用是:i每循环一次,sum将i的值和它原来的值累加后再赋给本人。所以,当循环终了时,sum中存放的就是0+1+2+100的结果其中0就是sum的初值。在Visual Basic中,任何变量都有默许的初值,其中,数值型变量的初值为0,字符型变量的初值为空字符。3.3.1 ForNext循环【例3-10】计算10的阶乘。分析:,也就是说,一个自然数的阶乘,等于该自然数与前一个自然数阶乘

14、的乘积,即从1开场延续地乘下一个自然数,直到10为止。代码如下:Private Sub Command1_Click() Dim i As Integer, s As Single s = 1给s赋初值1 For i = 1 To 10 s = s * is用作存放累乘结果的“容器 Next i Print sEnd Sub3.3.1 ForNext循环【例3-11】计算1!+2!+3!+10!。程序代码如下:Private Sub Command1_Click() Dim i As Integer, sum As Single, a As Single a = 1 For i = 1 To

15、10 a = a * i sum = sum + a Next i Print sumEnd Sub语句a = a * i也称乘法器。先将a置1不能置0。在循环程序中,常用累加器和累乘器来完成各种计算义务。 3.3.1 ForNext循环代码如下:Private Sub Command1_Click() Dim i As Integer, x As Single, n As Integer, s As Single, t As Single x = InputBox(请输入 x 的值:) n = InputBox(请输入 n 的值:) t = 1 For i = 1 To n t = t *

16、i s = s + x (2 * n - 1) / t Next i Print sEnd Sub3.3.2 WhileWend循环While循环的语法格式如下:While 循环体Wend功能:当条件为真时执行循环体。While循环语句的执行过程如下:假设条件为 True,那么执行循环体,当遇到 Wend 语句时,控制前往到 While 语句,并再一次检查条件,假设条件还是为 True,那么反复执行。假设不为 True,那么程序会从 Wend 语句之后的语句继续执行。3.3.2 WhileWend循环【例3-13】小李今年8岁,她母亲比她大28岁,编程计算出她的母亲在几年后比她的年龄大一倍,以

17、及那时母女的年龄。代码如下:Private Sub Form_Click() Dim n As Integer n = 8 While n * 2 n + 28 n = n + 1 Wend Print (n - 8) & 年后,母女的年龄分别是: & n & 和 & n + 28End Sub3.3.3 DoLoop循环Do循环的格式如下:格式一:Do While|Until 循环体Loop格式二:Do循环体Loop While|Until Do循环语句的功能是:当指定的条件为True或直到指定的条件变为True之前反复执行一组语句。 3.3.3 DoLoop循环 阐明: 1选项“While

18、当条件为True时执行循环体,选项“Until当条件为False时执行循环体 2循环体中可以运用“Exit Do来退出循环,将控制转移到Do循环后一语句3.3.3 DoLoop循环3.3.3 DoLoop循环 【例3-15】猜数游戏,随机生成一个1,100整数m,用户经过InputBox函数输入一个整数n,假设m = n,那么显示猜中信息;假设m n,那么显示小于信息;假设m n,那么显示大于信息。要求总次数不能超越10次。 分析:先经过Rnd函数得到要猜的数字m。由于不知道循环确实切次数,所以我们运用Do WhileLoop循环来实现。先引入一个变量i,初始为0,在循环体中使i的值加1,那么

19、我们可以在循环的条件中去判别i的值能否小于10,这样能保证循环最多运转10次。然后弹出输入框用于用户输入,假设输入的数字n等于m,那么程序终了。当n等于m时我们可以运用Exit Do来跳出Do WhileLoop循环。3.3.3 DoLoop循环程序代码如下:Private Sub Form_Click() Dim i As Integer, m As Integer, n As Integer Randomize m = Int(Rnd * 100 + 1) 产生一个1-100 的恣意整数 Do While i n Then MsgBox (太小了,继续猜!) ElseIf m n Then MsgBox (太大了,继续猜!) End If Loop If i = 10 Then MsgBox (猜数失败,游戏终了!)End Sub3.3.3 DoLoop循环3.3.3 DoLoop循环程序如下:Private Sub F

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论