第三章 程序流程控制ppt课件_第1页
第三章 程序流程控制ppt课件_第2页
第三章 程序流程控制ppt课件_第3页
第三章 程序流程控制ppt课件_第4页
第三章 程序流程控制ppt课件_第5页
已阅读5页,还剩67页未读 继续免费阅读

下载本文档

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

文档简介

1、第三章 程序流程控制第三章 程序流程控制本章内容及要求: 1.熟练掌握行if语句、块if构造、Select Case情况选择构造的运用,掌握选择的嵌套构造; 2.熟练掌握实现循环构造的For/Next循环构造及Exit For语句、Do/Loop循环构造的运用,掌握多重循环。本章重点: 选择构造及循环构造的实现及其运用本章难点: 选择的嵌套及多重循环构造案例3.1 条件语句IfThenElse3.1.1 案例阐明 输入x,计算y的值。其中: 1当 x6 时,y=x+3 (2) 当 x 6时,y=4x 案例3.1 条件语句IfThenElse3.1.2 相关知识 1. 1. IfThen构造这种

2、构造常称为简单分支构造,如下图。它普通有两种方式:单行和多行语句。 单行语句格式:If 条件表达式 Then 语句 多行语句格式:If 条件表达式 Then 语句块End If例如:对语句 If ab Then max=a也可改成多行构造方式: If ab Then max=a End If案例3.1 条件语句IfThenElse2. IfThenElse构造语句格式: If 条件表达式 Then 语句块1 Else 语句块2 End If例如,假设成果大于60分,那么在屏幕上显示“合格,否那么在屏幕上显示“不合格。 If score60 then MsgBox 合格 Else MsgBox

3、不合格 End If 案例3.1 条件语句IfThenElse3. 多重If语句语句格式:语句格式: If 条件表达式1 Then 语句块1 ElseIf 条件表达式2 Then 语句块2 ElseIf 条件表达式3 Then 语句块3 ElseIf 条件表达式n Then 语句块n Else 语句块 End If 案例3.1 条件语句IfThenElse案例3.1 条件语句IfThenElse3.1.3 设计步骤1建立程序初始界面。2 设置属性。 演示:案例3.1的补充例题 案例3.1 条件语句IfThenElse3.1.3 设计步骤(3)编写事件过程。 Private Sub Comman

4、d1_Click( )Dim x As Single, y As Singlex = Val(Text1.Text)If x 6 Then y = x + 3Else y = 4 * xEnd IfText2.Text = Str(y)End Sub 案例3.1 条件语句IfThenElse3.1.4 思索与练习 1. 编程实现:输入一个整数,判别它是奇数还是偶数,并输出相应的提示信息。用 IfThenElse语句实现。设计界面,编写完好的程序,上机实现Dim n As Integer, str As String 从界面上的某个控件获得变量n的值If n Mod 2 = 0 Then str

5、 = 偶数Else str = 奇数End If 把str的内容显示在界面上的某个控件上案例3.1 条件语句IfThenElse3.1.4 思索与练习2. 以下程序运转时,输出结果是什么?Private Sub Command1_Click( )y = 1If y 0 Then x = 5If y 0 Then x = 4Else x = 3End IfPrint x=; xEnd Subx=3案例3.2 条件语句IfThenElseIf语句3.2.1 案例阐明 对所输入的整数进展判别,假设输入数为正数,那么显示“大于零,假设输入数为负数,那么显示“小于零,否那么显示“等于零。用 IfThen

6、ElseIf语句实现。3.2.2 设计步骤1建立程序初始界面。2 设置属性。 演示:案例3.2 案例3.2 条件语句IfThenElseIf语句3.2.2 设计步骤(3)编写事件过程。 Private Sub Command1_Click( )If Val(Text1.Text) 0 Then Text2.Text = 大于零 Else Text2.Text = 等于零End IfEnd Sub案例3.2 条件语句IfThenElseIf语句3.2.3 思索与练习 1.为铁路编写计算运费的程序。假设铁路托运转李,规定每张客票托运费的计算方法是: 行李分量不超越 50 kg时,每千克0.25元;

7、超越 50 kg而不超越 100 kg时,其超越部分每千克0.35元;超越 100 kg时,其超越部分每千克0.45元。 用 IfThenElseIf语句实现。 设计界面,编写完好的程序,上机实现分析:托运费的分段函数是什么?答:设行李分量为w公斤,应付托运费为x元,那么托运费的分段函数是:1w=50时, x=0.25*w250w100时,x=0.25*50+0.35*50+0.45*(w-100)案例3.2 条件语句IfThenElseIf语句Private Sub Command1_Click( )Dim w As Single, x As Singlew = Val(Text1.Text

8、)If w 50 And w 100 Then x = 0.25 * 50 + 0.35 * 50 + 0.45 * (w - 100)假设把最后一句Text2 .Text = Str(x)写在此处,效果是什么?End If案例3.2 条件语句IfThenElseIf语句不能写成: 50w100时,才输出托运费。其他情况,不输出托运费。Text2 .Text = Str(x)End Sub留意:运转程序时,w50,50w100 几种情况都要运转,看结果能否正确。案例3.2 条件语句IfThenElseIf语句不能写成:x=Text2.Text3.2.4 思索与练习2.根据输入三角形三边判别能否

9、组成三角形,假设可以那么判别输出三角形的类型。用 IfThenElseIf语句实现。 设计界面,编写完好的程序,上机实现 阐明: 三角形的类型有:等边三角形,等腰三角形,直角三角形,普通三角形。案例3.2 条件语句IfThenElseIf语句请思索: 1怎样判别三角形是等边三角形? 2怎样判别三角形是等腰三角形? 3怎样判别三角形是直角三角形?案例3.2 条件语句IfThenElseIf语句Private Sub Command1_Click( )Dim a As Integer, b As Integer, c As Integer, str As String 从界面上的某些控件获得变量a

10、,b,c的值If (a + b c And b + c a And c + a b) Then If a = b And a = c Then str = 该三角形是等边三角形 ElseIf a = b Or a = c Or b = c Then str = 该三角形是等腰三角形 a = Val(Text1.Text)b = Val(Text2.Text)c = Val(Text3.Text)案例3.2 条件语句IfThenElseIf语句ElseIf a * a + b * b = c * c Or b * b + c * c = a * a Or c * c + a * a = b *

11、b Then str = 该三角形是直角三角形 Else str = 该三角形是普通三角形 End IfElse str = 不能组成三角形End If 把str的内容显示在界面上的某个控件上End SubLabel5.Caption = str Text4.Text=str案例3.3 条件语句Select Case语句3.3.1 案例阐明 计算公民应纳个人所得税。这里将个人所得税详细计算问题理想化,假设以1000元作为规范,10001999的税率为5%,20004999的税率为10%,50009999的税率为25%,1000019999的税率为40%,20000以上的税率为45%。 用Sel

12、ect Case语句实现。3.3.2 相关知识语句格式:Select Case 测试表达式Case 表达式列表1 语句块1Case 表达式列表2 语句块2 Case 表达式列表n 语句块n Case Else 语句块End Select案例3.3 条件语句Select Case语句 阐明:“测试表达式是必选项,可以是数值型或字符型表达式。“表达式列表可以有3种方式。 表达式:用来表达一些详细的数值范围。多个数值间用逗号分隔开,例如, Select case number Case 1,2,3,4,5 Result= 不合格 Case 6,7 Result= 合格 Case 8 Result=

13、良好 Case Else Result= 优秀 End Select案例3.3 条件语句Select Case语句 阐明: 表达式 To 表达式。这种表达式常用来表示一个数值范围,数值小的放在To前面。例如,Case a To z。以上判别成果等级例如可以改成“表达式 To 表达式方式: Case 1 To 5 Result= 不合格 Case 6 To 7 Result= 合格 Case 8 Result= 良好 Case Else Result= 优秀 End Select Is表达式。经过Is与比较运算符结合,用来表示一个数值范围。例如,Case Is6 案例3.3 条件语句Select

14、 Case语句3.3.3 设计步骤1建立程序初始界面。2 设置属性。 演示:案例3.3 案例3.3 条件语句Select Case语句3.3.3 设计步骤(3)编写事件过程。Private Sub Command1_Click( )Dim num As IntegerDim salary As Single, rate As Single, taxes As SingleDim temp As Stringtemp = InputBox(请输入该公民的月收入:, 月收入输入窗口)salary = Val(temp)If (salary - 1000) 0 Then MsgBox 不需交纳个人所

15、得税Else 案例3.3 条件语句Select Case语句num = Int(salary / 1000) Select Case num Case 1: rate = 0.05 Case 2, 3, 4: rate = 0.1 Case 5 To 9: rate = 0.25 Case 10 To 19: rate = 0.4 Case Else rate = 0.45 End Select taxes = (salary - 1000) * rate MsgBox 应交个人所得税金额为: & taxesEnd IfEnd Sub案例3.3 条件语句Select Case语句3.3.4 思

16、索与练习 1.为某航空公司计算票价的优惠率。假设优惠规定如下:1在旅游的旺季 7 9 月,假设订票数超越 20 张,票价优惠 15%,20 张以下,优惠 5%;2在旅游的淡季 1 5月、10月、11月,假设订票数超越 20 张,票价优惠 30%,20 张以下,优惠 20%;3其他情况一概优惠 10% 。请设计程序,根据月份和订票张数决议票价的优惠率。设计界面,编写完好的程序,上机实现案例3.3 条件语句Select Case语句演示:票价.vbp的界面方法一:Select Case 语句中嵌套IfThenElse语句Private Sub Command1_Click( )Dim month

17、As Integer, number As Integer, rate As Integermonth = Val(Text1.Text)number = Val(Text2.Text)Select Case month Case 1 To 5, 10, 11 If number 20 Then rate = 20 Else rate = 30 Case 7 To 9 If number = 1 And month = 5) Or month = 10 Or month = 11 Then If number = 7 And month = 9 Then If number 0 初值终值 =1

18、 时,可省略终值=0 死循环step案例3.4 For循环语句3.4.3 设计步骤1建立程序初始界面。2 设置属性。 演示:案例3.4案例3.4 For循环语句(3)编写事件过程。 Private Sub Command1_Click( )Dim sum As Integer, i As Integersum = 0 累加器初值置为0。书上77页加注释。For i = 1 To 100 sum = sum + i 留意红颜色的语句Next iLabel2.Caption = Str(sum)Debug.Print sumEnd Sub案例3.4 For循环语句3.4.4 思索与练习1假设要实现

19、 sum=1+2+3+10 , 怎样修正程序?2假设要实现 sum=30+31+32+50 , 怎样修正程序?3假设 Label2.Caption = Str(sum) 中 sum 写成 sam , 即: Label2.Caption = Str(sam)那么,运转后,Label2的Caption会变成什么?怎样防止这种错误?案例3.4 For循环语句For i = 1 To 10For i = 30 To 50强迫变量声明,Option Explicit菜单:工具 选项 要求变量声明03.5.1 案例阐明 用 For 循环实现求阶乘 n! 3.5.2 设计步骤1建立程序初始界面。2 设置属性

20、。 演示:案例3.5案例3.5 用For循环求阶乘 (3)编写事件过程。Private Sub Command1_Click( ) Dim n As Integer,i As Integer Dim result As Long result=1 累乘,初值置为1。书上78页加注释。 n=CInt(text1.text) 把表达式转换为整型。 If n=0 Then Label2.Caption=请输入正整数! Exit Sub 终了过程 End if For i=1 To n result=result*i Next i Label2.Caption=Str(n)+!=+Str(result

21、)End Sub案例3.5 用For循环求阶乘3.5.3 思索与练习1假设 result=1 写成 result=0 ,那么运转后,Label2的Caption会变成什么?2运转后,假设输入的 n =0, 1) Exit Sub 2) End 假设 Exit Sub 写成 End 1,2中哪句会终了程序的运转?哪句会终了本次事件过程,等待下一次事件过程?02终了程序的运转1终了本次事件过程,等待下一次事件过程案例3.5 用For循环求阶乘3.6.1 案例阐明用 DoLoop 循环构造实现求和sum=1+2+3+100。 案例3.6 DoLoop循环构造3.6.2 相关知识DoLoop循环构造

22、DoLoop语句较灵敏,其常用格式有两种。语句格式1:Do While | Until conditionstatementsExit DostatementsLoop语句格式2:DostatementsExit DostatementsLoop While | Until condition案例3.6 DoLoop循环构造 DoLoop Until执行过程 Do UntilLoop执行过程案例3.6 DoLoop循环构造3.6.3 设计步骤1建立程序初始界面。2 设置属性。 演示:案例3.6案例3.6 DoLoop循环构造 (3)编写事件过程。解法一:采用当型循环Do WhileLoopPr

23、ivate Sub Command1_Click() Dim i As Integer,sum As Integer i=1 循环变量初值置为1,82页修正-红字部分 sum=0 累加器初值置为0 Do While i100 sum=sum+i i=i+1 Loop Label2.Caption=Str(sum)End Sub3.6.4 思索与练习1假设 去掉 i=i+1 ,那么运转结果是什么?程序运转出错。错误缘由:溢出。请思索:为什么会溢出呢?案例3.5 用For循环求阶乘3.7.1 案例阐明 提示用户输入数字型数据,并对所输入的非负数进展求和,用 WhileWend 循环构造实现。案例3

24、.7 WhileWend循环构造3.7.3 设计步骤1建立程序初始界面。2 设置属性。 演示:案例3.7案例3.7 WhileWend循环构造(3)编写事件过程。Private Sub Command1_Click( )Dim num As Integer, total As IntegerDim temp As Stringnum = 0total = 0While num = 0 total = total + num temp = InputBox(Please enter a number:) num = Val(temp)WendLabel1.Caption = Str(total)

25、End Sub案例3.7 WhileWend循环构造3.7.4 思索与练习1这个While循环什么时候终了?2这个While循环的循环次数能否固定?答:输入负数时,循环终了。由于当 num =0时,执行循环体。答:循环次数不固定案例3.7 WhileWend循环构造3.8.1 案例阐明 求sum=1!+2!+3!+4!+5!,用多重循环实现。案例3.8 多重循环 3.8.2 相关知识多重循环 假设在一个循环内完好地包含另一个循环构造,那么称为多重循环,或循环嵌套,嵌套的层数可以根据需求而定,嵌套一层称为二重循环,嵌套二层称为三重循环。 上面引见的几种循环控制构造可以相互嵌套,下面是几种常见的二

26、重嵌套方式:案例3.8 多重循环3.8.3 设计步骤1建立程序初始界面。2 设置属性。 演示:案例3.8案例3.8 多重循环 (3)编写事件过程。 Private Sub Command1_Click( ) Dim i As Integer, j As Integer, n As Integer Dim sum1 As Long, sum2 As Long n = 5请思索:怎样使 n 可以变化?sum1 = 0 案例3.8 多重循环答:用InputBox语句实现,或加控件:Text1n = Val(InputBox(请输入n (n1,n为整数), 输入数据, 2)或n=Val(Text1.T

27、ext)For i = 1 To n sum2 = 1 For j = 1 To i sum2 = sum2 * j Next j sum1 = sum1 + sum2Next iLabel1.Caption = Label1.Caption + Str(sum1)End Sub案例3.8 多重循环1i=1 时,For j=1 to 12i=2 时, For j=1 to 25i=5 时,j=1 to 5总结:外重循环变量i变化1次,内重循环关于j的循环体能够执行多次。For i = 1 To n sum2 = 1 For j = 1 To i sum2 = sum2 * j Next j s

28、um1 = sum1 + sum2Next iLabel1.Caption = Label1.Caption + Str(sum1)End Sub案例3.8 多重循环1i=1 时,sum2=1For j=1 to 1 1) j=1 sum2=sum2*j=1*1=1sum1=sum1+sum2=0+1=1For i = 1 To n sum2 = 1 For j = 1 To i sum2 = sum2 * j Next j sum1 = sum1 + sum2Next i案例3.8 多重循环2i=2 时, sum2=1For j=1 to 2 1) j=1 sum2=sum2*j=1*1=1

29、 2) j=2 sum2=sum2*j=1*2=2sum1=sum1+sum2=1+2=3 For i = 1 To n sum2 = 1 For j = 1 To i sum2 = sum2 * j Next j sum1 = sum1 + sum2Next i案例3.8 多重循环3i=3 时, sum2=1For j=1 to 3 1) j=1 sum2=sum2*j=1*1=1 2) j=2 sum2=sum2*j=1*2=2 3) j=3 sum2=sum2*j=2*3=6sum1=sum1+sum2=3+6=9 案例3.8 多重循环请思索: 书上 页 习题三书上 3.1 输入3个数,

30、输出其中的最大数。1建立程序初始界面。2 设置属性。 演示:3.1 题习题三(3)编写事件过程。Private Sub Command1_Click( )Dim a As Single, b As Single, c As Single, max As Singlea = Val(Text1.Text)b = Val(Text2.Text)c = Val(Text3.Text)If a b Then max = aElse max = bEnd If习题三If c max Then max = cEnd IfLabel4.Caption = 最大的数是: + Str(max)End Sub习题三3.2 输入一行字符,分别统计其中数字、英文字母、空格的个数。 1建立程序初始界面。2 设置属性。 演示:3.2 题习题三(3)编写事件过程。Dim num1 As Integer, num2 As Integer, num3 As Integer留意定义num1,num2,num3的位置Private Sub Form_Load( )num1 = 0num2 = 0nu

温馨提示

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

评论

0/150

提交评论