版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、第三章第三章 程序流程控制程序流程控制第三章第三章 程序流程控制程序流程控制 本章内容及要求:本章内容及要求: 1.熟练掌握行熟练掌握行if语句、块语句、块if结构、结构、Select Case情情况选择结构的使用,掌握选择的嵌套结构;况选择结构的使用,掌握选择的嵌套结构; 2.熟练掌握实现循环结构的熟练掌握实现循环结构的For/Next循环结构循环结构及及Exit For语句、语句、Do/Loop循环结构的使用,掌循环结构的使用,掌握多重循环。握多重循环。 本章重点:本章重点: 选择结构及循环结构的实现及其应用选择结构及循环结构的实现及其应用 本章难点:本章难点: 选择的嵌套及多重循环结构选
2、择的嵌套及多重循环结构案例案例3.1 3.1 条件语句条件语句IfThenElseIfThenElse3.1.1 3.1.1 案例说明案例说明 输入输入x,x,计算计算y y的值。其中:的值。其中: (1 1)当)当 x6 x6 时,时,y=x+3y=x+3 (2) (2) 当当 x x 6 6时,时,y=4xy=4x 案例案例3.1 3.1 条件语句条件语句IfThenElseIfThenElse3.1.2 3.1.2 相关知识相关知识 1. 1. 1. IfThen1. IfThen结构结构这种结构常称为简单分支结构,如图所示。它一般有两种形式:这种结构常称为简单分支结构,如图所示。它一般
3、有两种形式:单行和多行语句。单行和多行语句。 单行语句格式:单行语句格式:If If 条件表达式条件表达式 Then Then 语句语句 多行语句格式:多行语句格式:If If 条件表达式条件表达式 ThenThen 语句块语句块End IfEnd If条件表达式语句块truefalse例如:例如:对语句对语句 If ab Then max=a也可改成多行结构形式:也可改成多行结构形式: If ab Then max=a End If案例案例3.1 3.1 条件语句条件语句IfThenElseIfThenElse2. IfThenElse2. IfThenElse结构结构语句格式:语句格式:
4、If If 条件表达式条件表达式 ThenThen 语句块语句块1 1 Else Else 语句块语句块2 2 End If End If例如,如果成绩大于例如,如果成绩大于6060分,则在屏幕分,则在屏幕上显示上显示“合格合格”,否则在屏幕上,否则在屏幕上显示显示“不合格不合格”。 If score60 thenIf score60 then MsgBoxMsgBox 合格合格 ElseElse MsgBoxMsgBox 不合格不合格 End IfEnd If 案例案例3.1 3.1 条件语句条件语句IfThenElseIfThenElsetrue条件表达式语句块 1false语句块 23.
5、 多重多重If语句语句格式:语句语句格式:语句格式:语句格式: If 条件表达式条件表达式1 Then 语句块语句块1 ElseIf 条件表达式条件表达式2 Then 语句块语句块2 ElseIf 条件表达式条件表达式3 Then 语句块语句块3 ElseIf 条件表达式条件表达式n Then 语句块语句块n Else 语句块语句块 End If 案例案例3.1 3.1 条件语句条件语句IfThenElseIfThenElse语句块条件 n语句块条件 1语句块条件 3语句块条件 2案例案例3.1 3.1 条件语句条件语句IfThenElseIfThenElse3.1.3 3.1.3 设计步骤设
6、计步骤 (1 1)建立程序初始界面。建立程序初始界面。(2 2) 设置属性。设置属性。 演示:案例演示:案例3.13.1的补充例题的补充例题 案例案例3.1 3.1 条件语句条件语句IfThenElseIfThenElse3.1.3 3.1.3 设计步骤设计步骤 (3)(3)编写事件过程。编写事件过程。 Private Sub Command1_Click( )Private Sub Command1_Click( )Dim x As Single, y As SingleDim x As Single, y As Singlex = Val(Text1.Text)x = Val(Text1.
7、Text)If x 6 ThenIf x 6 Then y = x + 3 y = x + 3ElseElse y = 4 y = 4 * * x xEnd IfEnd IfText2.Text = Text2.Text = Str(yStr(y) )End SubEnd Sub 案例案例3.1 3.1 条件语句条件语句IfThenElseIfThenElse3.1.4 3.1.4 思考与练习思考与练习 1. 1. 编程实现:输入一个整数,判断它是奇数还是偶数,并编程实现:输入一个整数,判断它是奇数还是偶数,并输出相应的提示信息。用输出相应的提示信息。用 IfThenElseIfThenEls
8、e语句实现。语句实现。(设计界面,编写完整的程序,上机实现)(设计界面,编写完整的程序,上机实现)Dim n As Integer, Dim n As Integer, strstr As String As String 从界面上的某个控件获得变量从界面上的某个控件获得变量n n的值的值If n Mod 2 = 0 ThenIf n Mod 2 = 0 Then strstr = = 偶数偶数 ElseElse strstr = = 奇数奇数 End IfEnd If 把把strstr的内容显示在界面上的某个控件上的内容显示在界面上的某个控件上案例案例3.1 3.1 条件语句条件语句IfTh
9、enElseIfThenElse3.1.4 3.1.4 思考与练习思考与练习 2. 2. 以下程序运行时,输出结果是什么?以下程序运行时,输出结果是什么?Private Sub Command1_Click( )Private Sub Command1_Click( )y = 1y = 1If y 0 Then x = 5If y 0 Then x = 5If y 0 ThenIf y 0 Then x = 4 x = 4ElseElse x = 3 x = 3End IfEnd IfPrint x=; xPrint x=; xEnd SubEnd Subx=3x=3案例案例3.2 3.2 条
10、件语句条件语句IfThenIfThenElseIfElseIf语句语句3.2.1 3.2.1 案例说明案例说明 对所输入的整数进行判断,若输入数为正数,则显示对所输入的整数进行判断,若输入数为正数,则显示“大于大于零零”,若输入数为负数,则显示,若输入数为负数,则显示“小于零小于零”,否则显示,否则显示“等于等于零零”。用用 IfThenIfThenElseIfElseIf语句实现。语句实现。3.2.2 3.2.2 设计步骤设计步骤 (1 1)建立程序初始界面。建立程序初始界面。(2 2) 设置属性。设置属性。 演示:案例演示:案例3.23.2 案例案例3.2 3.2 条件语句条件语句IfTh
11、enIfThenElseIfElseIf语句语句3.2.2 3.2.2 设计步骤设计步骤 (3)(3)编写事件过程。编写事件过程。 Private Sub Command1_Click( )Private Sub Command1_Click( )If Val(Text1.Text) 0 ThenIf Val(Text1.Text) 0 Then Val(Text1.Text) 0 Then Text2.Text = Text2.Text = 大于零大于零 Else Else Text2.Text = Text2.Text = 等于零等于零 End IfEnd IfEnd SubEnd Sub
12、案例案例3.2 3.2 条件语句条件语句IfThenIfThenElseIfElseIf语句语句3.2.3 3.2.3 思考与练习思考与练习 1.1.为铁路编写计算运费的程序。假设铁路托运行李,规定每张为铁路编写计算运费的程序。假设铁路托运行李,规定每张客票托运费的计算方法是:客票托运费的计算方法是: 行李重量不超过行李重量不超过 50 kg50 kg时,每千克时,每千克0.250.25元;超过元;超过 50 kg50 kg而不超而不超过过 100 kg100 kg时,其超过部分每千克时,其超过部分每千克0.350.35元;超过元;超过 100 kg100 kg时,其超过时,其超过部分每千克部
13、分每千克0.450.45元。元。 用用 IfThenIfThenElseIfElseIf语句实现。语句实现。 (设计界面,编写完整的程序,上机实现)(设计界面,编写完整的程序,上机实现)分析:托运费的分段函数是什么?分析:托运费的分段函数是什么?答:设行李重量为答:设行李重量为w公斤,应付托运费为公斤,应付托运费为x元,则托运费的分段函数元,则托运费的分段函数是:是:(1)w=50时,时, x=0.25*w(2)50w100时,时,x=0.25*50+0.35*50+0.45*(w-100)案例案例3.2 3.2 条件语句条件语句IfThenIfThenElseIfElseIf语句语句Priv
14、ate Sub Command1_Click( )Private Sub Command1_Click( )Dim w As Single, x As SingleDim w As Single, x As Singlew = Val(Text1.Text)w = Val(Text1.Text)IfIf w = 50 Then w 50 And w 50 And w 100 Then w100 Then x = 0.25 x = 0.25 * * 50 + 0.35 50 + 0.35 * * 50 + 0.45 50 + 0.45 * * (w - 100) (w - 100)如果把最后一句
15、如果把最后一句Text2 .Text = Text2 .Text = Str(xStr(x) )写在此处,效果是什么?写在此处,效果是什么?End End IfIf案例案例3.2 3.2 条件语句条件语句IfThenIfThenElseIfElseIf语句语句不能写成:不能写成: 50w100w100时时, ,才输出托运费。其他情况才输出托运费。其他情况, ,不输出托运费。不输出托运费。Text2 .Text = Text2 .Text = Str(xStr(x) )End SubEnd Sub注意:注意:运行程序时,运行程序时,w50,50w100 w50,50w100 几种情况都要运行,看
16、结果几种情况都要运行,看结果是否正确。是否正确。案例案例3.2 3.2 条件语句条件语句IfThenIfThenElseIfElseIf语句语句不能写成:不能写成:x=Text2.Text3.2.4 3.2.4 思考与练习思考与练习 2.2.根据输入三角形三边判断能否组成三角形,若可以则判断输根据输入三角形三边判断能否组成三角形,若可以则判断输出三角形的类型。用出三角形的类型。用 IfThenIfThenElseIfElseIf语句实现。语句实现。 (设计界面,编写完整的程序,上机实现)(设计界面,编写完整的程序,上机实现) 说明:说明: 三角形的类型有:等边三角形,等腰三角形,直角三角形,三
17、角形的类型有:等边三角形,等腰三角形,直角三角形,普通三角形。普通三角形。案例案例3.2 3.2 条件语句条件语句IfThenIfThenElseIfElseIf语句语句请请思考:思考: (1 1)怎样判断三角形是等边三角形?)怎样判断三角形是等边三角形? (2 2)怎样判断三角形是等腰三角形?)怎样判断三角形是等腰三角形? (3 3)怎样判断三角形是直角三角形?)怎样判断三角形是直角三角形?案例案例3.2 3.2 条件语句条件语句IfThenIfThenElseIfElseIf语句语句Private Sub Command1_Click( )Private Sub Command1_Clic
18、k( )Dim a As Integer, b As Integer, c As Integer, Dim a As Integer, b As Integer, c As Integer, strstr As String As String 从界面上的某些控件获得变量从界面上的某些控件获得变量a,b,ca,b,c的值的值If (a + b c And b + c a And c + a b) ThenIf (a + b c And b + c a And c + a b) Then If a = b And a = c Then If a = b And a = c Then strstr
19、 = = 该三角形是等边三角形该三角形是等边三角形 ElseIfElseIf a = b Or a = c Or b = c Then a = b Or a = c Or b = c Then strstr = = 该三角形是等腰三角形该三角形是等腰三角形 a = Val(Text1.Text)b = Val(Text2.Text)c = Val(Text3.Text)案例案例3.2 3.2 条件语句条件语句IfThenIfThenElseIfElseIf语句语句ElseIfElseIf a a * * a + b a + b * * b = c b = c * * c Or b c Or b
20、 * * b + c b + c * * c = a c = a * * a Or c a Or c * * c + a c + a * * a = b a = b * * b Then b Then strstr = = 该三角形是直角三角形该三角形是直角三角形 Else Else strstr = = 该三角形是普通三角形该三角形是普通三角形 End If End IfElseElse strstr = = 不能组成三角形不能组成三角形 End IfEnd If 把把strstr的内容显示在界面上的某个控件上的内容显示在界面上的某个控件上End SubEnd SubLabel5.Capti
21、on = str Text4.Text=str案例案例3.3 3.3 条件语句条件语句Select CaseSelect Case语句语句3.3.1 3.3.1 案例说明案例说明 计算公民应纳个人所得税。这里将个人所得税具体计算问计算公民应纳个人所得税。这里将个人所得税具体计算问题理想化,假设以题理想化,假设以1000元作为标准,元作为标准,10001999的税率为的税率为5%,20004999的税率为的税率为10%,50009999的税率为的税率为25%,1000019999的税率为的税率为40%,20000以上的税率为以上的税率为45%。 用用Select CaseSelect Case语
22、句实现。语句实现。3.3.2 3.3.2 相关知识相关知识 语句格式:语句格式:Select Case Select Case 测试表达式测试表达式Case Case 表达式列表表达式列表1 1 语句块语句块1 1Case Case 表达式列表表达式列表2 2 语句块语句块2 2 Case Case 表达式列表表达式列表n n 语句块语句块n n Case Else Case Else 语句块语句块End SelectEnd Select案例案例3.3 3.3 条件语句条件语句Select CaseSelect Case语句语句 说明:说明:“测试表达式测试表达式”是必选项,可以是数值型或字符
23、型表达式。是必选项,可以是数值型或字符型表达式。“表表达式列表达式列表”可以有可以有3 3种形式。种形式。 表达式:用来表达一些具体的数值范围。多个数值间用逗号表达式:用来表达一些具体的数值范围。多个数值间用逗号分隔开,例如,分隔开,例如, Select case numberSelect case number Case 1 Case 1,2 2,3 3,4 4,5 5 Result= Result= 不合格不合格 Case 6Case 6,7 7 Result= Result= 合格合格 Case 8Case 8 Result= Result= 良好良好 Case ElseCase Els
24、e Result= Result= 优秀优秀 End SelectEnd Select案例案例3.3 3.3 条件语句条件语句Select CaseSelect Case语句语句 说明:说明: 表达式表达式 To To 表达式。这种表达式常用来表示一个数值范围,表达式。这种表达式常用来表示一个数值范围,数值小的放在数值小的放在ToTo前面。例如,前面。例如,Case Case a a To To z z 。以上判断成。以上判断成绩等级示例可以改成绩等级示例可以改成“表达式表达式 To To 表达式表达式”形式:形式: Case 1 To 5 Case 1 To 5 Result= Result
25、= 不合格不合格 Case 6 To 7Case 6 To 7 Result= Result= 合格合格 Case 8Case 8 Result= Result= 良好良好 Case ElseCase Else Result= Result= 优秀优秀 End SelectEnd Select Is Is表达式。通过表达式。通过IsIs与比较运算符结合,用来表示一个数值范与比较运算符结合,用来表示一个数值范围。围。例如,例如,Case Is6Case Is6 案例案例3.3 3.3 条件语句条件语句Select CaseSelect Case语句语句3.3.3 3.3.3 设计步骤设计步骤 (
26、1 1)建立程序初始界面。建立程序初始界面。(2 2) 设置属性。设置属性。 演示:案例演示:案例3.33.3 案例案例3.3 3.3 条件语句条件语句Select CaseSelect Case语句语句3.3.3 3.3.3 设计步骤设计步骤 (3)(3)编写事件过程。编写事件过程。Private Sub Command1_Click( )Private Sub Command1_Click( )Dim num As IntegerDim num As IntegerDim salary As Single, rate As Single, taxes As SingleDim salary
27、 As Single, rate As Single, taxes As SingleDim temp As StringDim temp As Stringtemp = temp = InputBoxInputBox(请输入该公民的月收入:请输入该公民的月收入:, , 月收入输入窗口月收入输入窗口)salary = Val(temp)salary = Val(temp)If (salary - 1000) 0 ThenIf (salary - 1000) 0 Then MsgBoxMsgBox 不需交纳个人所得税不需交纳个人所得税 ElseElse 案例案例3.3 3.3 条件语句条件语句S
28、elect CaseSelect Case语句语句num = num = Int(salaryInt(salary / 1000) / 1000) Select Case num Select Case num Case 1: rate = 0.05 Case 1: rate = 0.05 Case 2, 3, 4: rate = 0.1 Case 2, 3, 4: rate = 0.1 Case 5 To 9: rate = 0.25 Case 5 To 9: rate = 0.25 Case 10 To 19: rate = 0.4 Case 10 To 19: rate = 0.4 Ca
29、se Else Case Else rate = 0.45 rate = 0.45 End Select End Select taxes = (salary - 1000) taxes = (salary - 1000) * * rate rate MsgBoxMsgBox 应交个人所得税金额为:应交个人所得税金额为: & taxes & taxesEnd IfEnd IfEnd SubEnd Sub案例案例3.3 3.3 条件语句条件语句Select CaseSelect Case语句语句3.3.4 3.3.4 思考与练习思考与练习 1.1.为某航空公司计算票价的优惠率。假
30、设优惠规定如下:为某航空公司计算票价的优惠率。假设优惠规定如下:(1 1)在旅游的旺季)在旅游的旺季 7 9 7 9 月,如果订票数超过月,如果订票数超过 20 20 张,票张,票价优惠价优惠 15%15%,20 20 张以下,优惠张以下,优惠 5%5%;(2 2)在旅游的淡季)在旅游的淡季 1 51 5月、月、1010月、月、1111月,如果订票数超过月,如果订票数超过 20 20 张,票价优惠张,票价优惠 30%30%,20 20 张以下,优惠张以下,优惠 20%20%;(3 3)其他情况一律优惠)其他情况一律优惠 10% 10% 。请设计程序,根据月份和订票张数决定票价的优惠率。请设计程
31、序,根据月份和订票张数决定票价的优惠率。(设计界面,编写完整的程序,上机实现)(设计界面,编写完整的程序,上机实现)案例案例3.3 3.3 条件语句条件语句Select CaseSelect Case语句语句演示:票价演示:票价. .vbpvbp的界面的界面方法一:方法一:Select Case Select Case 语句中嵌套语句中嵌套IfThenElseIfThenElse语句语句Private Sub Command1_Click( )Private Sub Command1_Click( )Dim month As Integer, number As Integer, rate A
32、s IntegerDim month As Integer, number As Integer, rate As Integermonth = Val(Text1.Text)month = Val(Text1.Text)number = Val(Text2.Text)number = Val(Text2.Text)Select Case monthSelect Case month Case 1 To 5, 10, 11 Case 1 To 5, 10, 11 If number 20 Then rate = 20 Else rate = 30 If number 20 Then rate
33、= 20 Else rate = 30 Case 7 To 9 Case 7 To 9 If number 20 Then rate = 5 Else rate = 15 If number = 1 And month = 1 And month = 5) Or month = 10 Or month = 11 Then If number 20 Then rate = 20 Else rate = 30 If number = 7 And month = 7 And month = 9 Then If number 20 Then rate = 5 Else rate = 15 If num
34、ber 0 0 初值初值 终值终值 =1 =1 时时, ,可省略可省略0 终值终值=0 =0 死循环死循环step案例案例3.4 For3.4 For循环语句循环语句3.4.3 3.4.3 设计步骤设计步骤 (1 1)建立程序初始界面。)建立程序初始界面。(2 2) 设置属性。设置属性。 演示:案例演示:案例3.43.4案例案例3.4 For3.4 For循环语句循环语句(3)(3)编写事件过程。编写事件过程。 Private Sub Command1_Click( )Private Sub Command1_Click( )Dim sum As Integer, i As IntegerDi
35、m sum As Integer, i As Integersum = 0sum = 0 累加器初值置为累加器初值置为0 0。书上书上7777页加注释。页加注释。For i = For i = 1 1 To To 100100 sum = sum + i sum = sum + i 注意红颜色的语句注意红颜色的语句Next iNext iLabel2.Caption = Label2.Caption = Str(sumStr(sum) )Debug.Print sumDebug.Print sumEnd SubEnd Sub案例案例3.4 For3.4 For循环语句循环语句3.4.4 3.4
36、.4 思考与练习思考与练习 (1 1)如果要实现如果要实现 sum=1+2+3+10 sum=1+2+3+10 , 怎样修改程序怎样修改程序? ?(2 2)如果要实现)如果要实现 sum=30+31+32+50 sum=30+31+32+50 , 怎样修改程序怎样修改程序? ?(3 3)如果)如果 Label2.Caption = Label2.Caption = Str(sumStr(sum) ) 中中 sum sum 写成写成 samsam , , 即:即: Label2.Caption = Label2.Caption = Str(Str(samsam) )则,运行后,则,运行后,Lab
37、el2Label2的的CaptionCaption会变成什么?会变成什么?怎样避免这种错误?怎样避免这种错误?案例案例3.4 For3.4 For循环语句循环语句For i = 1 ToFor i = 1 To 10 10For i = For i = 3030 To To 5050强制变量声明,强制变量声明,Option ExplicitOption Explicit菜单:工具菜单:工具 选项选项 要求变量声明要求变量声明0 03.5.1 3.5.1 案例说明案例说明 用用 For For 循环实现求阶乘循环实现求阶乘 n n! 3.5.2 3.5.2 设计步骤设计步骤 (1 1)建立程序初
38、始界面。)建立程序初始界面。(2 2) 设置属性。设置属性。 演示:案例演示:案例3.53.5案例案例3.5 3.5 用用ForFor循环求阶乘循环求阶乘 (3)(3)编写事件过程。编写事件过程。Private Sub Command1_Click( )Private Sub Command1_Click( ) Dim n As Integer,i As IntegerDim n As Integer,i As Integer Dim result As Long Dim result As Long result=1 result=1 累乘,初值置为累乘,初值置为1 1。书上。书上7878页
39、加注释。页加注释。 n=n=CIntCInt(text1.text) (text1.text) 把表达式转换为整型。把表达式转换为整型。 If n=0 Then If n=0 Then Label2.Caption= Label2.Caption=请输入正整数!请输入正整数! Exit Sub Exit Sub 结束过程结束过程 End ifEnd if For i=1 To n For i=1 To n result=result result=result* *i i Next i Next i Label2.Caption= Label2.Caption=Str(nStr(n)+!=+)
40、+!=+Str(resultStr(result) )End SubEnd Sub案例案例3.5 3.5 用用ForFor循环求阶乘循环求阶乘3.5.3 3.5.3 思考与练习思考与练习 (1 1)如果如果 result=1 result=1 写成写成 result=result=0 0 ,则运行后,则运行后,Label2Label2的的CaptionCaption会变成什么?会变成什么?(2 2)运行后,如果输入的)运行后,如果输入的 n =0,n =0, 1) 1) Exit Sub Exit Sub 2) End 2) End (如果如果 Exit Sub Exit Sub 写成写成 E
41、nd End ) 1 1),),2 2)中哪句会结束程序的运行?哪句会结束本次事件过中哪句会结束程序的运行?哪句会结束本次事件过程,等待下一次事件过程?程,等待下一次事件过程?0 02 2)结束程序的运行结束程序的运行1 1)结束本次事件过程,等待下一次事件过程)结束本次事件过程,等待下一次事件过程案例案例3.5 3.5 用用ForFor循环求阶乘循环求阶乘3.6.1 3.6.1 案例说明案例说明 用用 DoLoop DoLoop 循环结构实现求和循环结构实现求和sum=1+2+3+100sum=1+2+3+100。 案例案例3.6 DoLoop3.6 DoLoop循环结构循环结构3.6.2
42、3.6.2 相关知识相关知识 DoLoopDoLoop循环结构循环结构 DoLoop语句较灵活,其常用格式有两种。语句较灵活,其常用格式有两种。语句格式语句格式1:Do While | Until conditionstatementsExit DostatementsLoop语句格式语句格式2:DostatementsExit DostatementsLoop While | Until condition案例案例3.6 DoLoop3.6 DoLoop循环结构循环结构 DoLoop Until执行过程执行过程 Do UntilLoopDo UntilLoop执行过程执行过程案例案例3.6
43、DoLoop3.6 DoLoop循环结构循环结构循环语句条件表达式TrueFalse条件表达式循环语句TrueFalse3.6.3 3.6.3 设计步骤设计步骤 (1 1)建立程序初始界面。)建立程序初始界面。(2 2) 设置属性。设置属性。 演示:案例演示:案例3.63.6案例案例3.6 DoLoop3.6 DoLoop循环结构循环结构 (3)(3)编写事件过程。编写事件过程。解法一:采用当型循环解法一:采用当型循环Do WhileDo WhileLoopLoopPrivate Sub Command1_Click()Private Sub Command1_Click() Dim i As
44、 Integer,sum As Integer Dim i As Integer,sum As Integer i=1 i=1 循环变量循环变量初值置为初值置为1 1,8282页修改页修改-红字部分红字部分 sum=0 sum=0 累加器初值置为累加器初值置为0 0 Do While i=100Do While i100Do Until i100 sum=sum+i sum=sum+i i=i+1 i=i+1 LoopLoop Label2.Caption= Label2.Caption=Str(sumStr(sum) )End SubEnd Sub3.6.4 3.6.4 思考与练习思考与练习
45、 (1 1)如果如果 去掉去掉 i=i+1 i=i+1 ,则运行结果是什么?则运行结果是什么?程序运行出错。错误原因:溢出。程序运行出错。错误原因:溢出。请思考:为什么会溢出呢?请思考:为什么会溢出呢?案例案例3.5 3.5 用用ForFor循环求阶乘循环求阶乘3.7.1 3.7.1 案例说明案例说明 提示用户输入数字型数据,并对所输入的非负数进行求和,用提示用户输入数字型数据,并对所输入的非负数进行求和,用 WhileWend WhileWend 循环结构实现。循环结构实现。案例案例3.7 WhileWend3.7 WhileWend循环结构循环结构3.7.3 3.7.3 设计步骤设计步骤
46、(1 1)建立程序初始界面。)建立程序初始界面。(2 2) 设置属性。设置属性。 演示:案例演示:案例3.73.7案例案例3.7 WhileWend3.7 WhileWend循环结构循环结构(3)(3)编写事件过程。编写事件过程。Private Sub Command1_Click( )Private Sub Command1_Click( )Dim num As Integer, total As IntegerDim num As Integer, total As IntegerDim temp As StringDim temp As Stringnum = 0num = 0total
47、 = 0total = 0While num = 0While num = 0 total = total + num total = total + num temp = temp = InputBox(PleaseInputBox(Please enter a number:) enter a number:) num = Val(temp) num = Val(temp)WendWendLabel1.Caption = Label1.Caption = Str(totalStr(total) )End SubEnd Sub案例案例3.7 WhileWend3.7 WhileWend循环结
48、构循环结构3.7.4 3.7.4 思考与练习思考与练习 (1 1)这个这个WhileWhile循环什么时候结束?循环什么时候结束?(2 2)这个)这个WhileWhile循环的循环次数是否固定?循环的循环次数是否固定?答:输入负数时,循环结束。因为当答:输入负数时,循环结束。因为当 num =0num =0时,执行循环体。时,执行循环体。答:答:循环次数循环次数不不固定固定案例案例3.7 WhileWend3.7 WhileWend循环结构循环结构3.8.1 3.8.1 案例说明案例说明 求求sum=1!+2!+3!+4!+5!sum=1!+2!+3!+4!+5!,用多重循环实现。用多重循环实
49、现。案例案例3.8 3.8 多重循环多重循环 3.8.2 3.8.2 相关知识相关知识 多重循环多重循环 如果在一个循环内完整地包含另一个循环结构,则如果在一个循环内完整地包含另一个循环结构,则称为多重循环,或循环嵌套,嵌套的层数可以根据需要而称为多重循环,或循环嵌套,嵌套的层数可以根据需要而定,嵌套一层称为二重循环,嵌套二层称为三重循环。定,嵌套一层称为二重循环,嵌套二层称为三重循环。 上面介绍的几种循环控制结构可以相互嵌套,下面上面介绍的几种循环控制结构可以相互嵌套,下面是几种常见的二重嵌套形式:是几种常见的二重嵌套形式:案例案例3.8 3.8 多重循环多重循环3.8.3 3.8.3 设计
50、步骤设计步骤 (1 1)建立程序初始界面。)建立程序初始界面。(2 2) 设置属性。设置属性。 演示:案例演示:案例3.83.8案例案例3.8 3.8 多重循环多重循环 (3)(3)编写事件过程。编写事件过程。 Private Sub Command1_Click( )Private Sub Command1_Click( ) Dim i As Integer, j As Integer, n As Integer Dim i As Integer, j As Integer, n As Integer Dim sum1 As Long, sum2 As Long Dim sum1 As Lo
51、ng, sum2 As Long n = 5 n = 5请请思考:怎样使思考:怎样使 n n 能够变化?能够变化?sum1 = 0 sum1 = 0 案例案例3.8 3.8 多重循环多重循环答:用答:用InputBoxInputBox语句实现,或加控件:语句实现,或加控件:Text1Text1n = n = Val(InputBoxVal(InputBox(请输入请输入n (n1,nn (n1,n为整数为整数), ), 输入数据输入数据, 2), 2)或或n=Val(Text1.Text)n=Val(Text1.Text)For i = 1 To nFor i = 1 To n sum2 =
52、1 sum2 = 1 For j = 1 To i For j = 1 To i sum2 = sum2 sum2 = sum2 * * j j Next j Next j sum1 = sum1 + sum2 sum1 = sum1 + sum2Next iNext iLabel1.Caption = Label1.Caption = Label1.Caption + Str(sum1) Label1.Caption + Str(sum1)End SubEnd Sub案例案例3.8 3.8 多重循环多重循环(1 1)i=1 i=1 时,时,For j=1 to 1For j=1 to 1(2
53、 2)i=2 i=2 时,时, For j=1 to 2For j=1 to 2(5 5)i=5 i=5 时,时,j=1 to 5j=1 to 5总结:外重循环变量总结:外重循环变量i i变化变化1 1次,内重次,内重循环关于循环关于j j的循环体可能执行多次。的循环体可能执行多次。For i = 1 To nFor i = 1 To n sum2 = 1 sum2 = 1 For j = 1 To i For j = 1 To i sum2 = sum2 sum2 = sum2 * * j j Next j Next j sum1 = sum1 + sum2 sum1 = sum1 + su
54、m2Next iNext iLabel1.Caption = Label1.Caption + Str(sum1)Label1.Caption = Label1.Caption + Str(sum1)End SubEnd Sub案例案例3.8 3.8 多重循环多重循环(1 1)i=1 i=1 时,时,sum2=1sum2=1For j=1 to 1For j=1 to 1 1) j=1 sum2=sum2 1) j=1 sum2=sum2* *j=1j=1* *1=11=1sum1=sum1+sum2=0+1=1sum1=sum1+sum2=0+1=1For i = 1 To nFor i =
55、 1 To n sum2 = 1 sum2 = 1 For j = 1 To i For j = 1 To i sum2 = sum2 sum2 = sum2 * * j j Next j Next j sum1 = sum1 + sum2 sum1 = sum1 + sum2Next iNext i案例案例3.8 3.8 多重循环多重循环(2 2)i=2 i=2 时,时, sum2=1sum2=1For j=1 to 2For j=1 to 2 1) j=1 sum2=sum2 1) j=1 sum2=sum2* *j=1j=1* *1=11=1 2) j=2 sum2=sum2 2) j=
56、2 sum2=sum2* *j=1j=1* *2=22=2sum1=sum1+sum2=1+2=3sum1=sum1+sum2=1+2=3 For i = 1 To nFor i = 1 To n sum2 = 1 sum2 = 1 For j = 1 To iFor j = 1 To i sum2 = sum2 sum2 = sum2 * * j j Next j Next j sum1 = sum1 + sum2 sum1 = sum1 + sum2Next iNext i案例案例3.8 3.8 多重循环多重循环(3 3)i=3 i=3 时,时, sum2=1sum2=1For j=1 t
57、o 3For j=1 to 3 1) j=1 sum2=sum2 1) j=1 sum2=sum2* *j=1j=1* *1=11=1 2) j=2 sum2=sum2 2) j=2 sum2=sum2* *j=1j=1* *2=22=2 3) j=3 sum2=sum2 3) j=3 sum2=sum2* *j=2j=2* *3=63=6sum1=sum1+sum2=3+6=9sum1=sum1+sum2=3+6=9 案例案例3.8 3.8 多重循环多重循环请请思考:思考: 书上书上 页页 习题三习题三书上书上 3.1 3.1 输入输入3 3个数,输出其中的最大数。个数,输出其中的最大数。(
58、1 1)建立程序初始界面。)建立程序初始界面。(2 2) 设置属性。设置属性。 演示:演示:3.1 3.1 题题习题三习题三(3)(3)编写事件过程。编写事件过程。Private Sub Command1_Click( )Private Sub Command1_Click( )Dim a As SingDim a As Singl le, b As Singe, b As Singl le, c As Singe, c As Singl le, max As Singe, max As Singl le ea = a = ValVal(Text1.Text)(Text1.Text)b = b
59、 = ValVal(Text2.Text)(Text2.Text)c = c = ValVal(Text3.Text)(Text3.Text)IfIf a b Then a b Then max = a max = aElseElse max = b max = bEnd End IfIf习题三习题三IfIf c max Then c max Then max = c max = cEnd End IfIfLabeLabel4l4.Caption = .Caption = 最大的数是:最大的数是: + + Str(maxStr(max) )End SubEnd Sub习题三习题三3.2 3.2
60、 输入一行字符,分别统计其中数字、英文字母、空格的个数。输入一行字符,分别统计其中数字、英文字母、空格的个数。 (1 1)建立程序初始界面。)建立程序初始界面。(2 2) 设置属性。设置属性。 演示:演示:3.2 3.2 题题习题三习题三(3)(3)编写事件过程。编写事件过程。Dim num1 As Integer, num2 As Integer, num3 As IntegerDim num1 As Integer, num2 As Integer, num3 As Integer 注意定义注意定义num1,num2,num3num1,num2,num3的位置的位置Private Sub Form_Load( )Private Sub Form_Load( )num1 = 0num1 = 0num2 = 0num2
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 急性心梗识别与护理
- 语音室安全管理制度培训
- 2025《装在套子里的人》中别里科夫的社交恐惧课件
- 机械安全管理规定培训课件
- 2026年化工行业特许经营协议
- 氧化铝厂安全通则培训课件
- 安全管理综合培训:防病、防疫与防中毒
- 2026年广东水利电力职业技术学院单招职业技能测试题库及答案详解1套
- 2026年广东科贸职业学院单招职业倾向性测试题库及参考答案详解(新)
- 2026年广东理工职业学院单招职业倾向性考试题库带答案详解(满分必刷)
- 2026年小学四年级下册劳动教育教学计划
- 酒店客房员工考核制度
- 2026年内蒙古商贸职业学院单招职业技能测试题库附答案详解(夺分金卷)
- 2025四川遂宁市中心医院公开招聘非在编卫生专业技术人员30人护理笔试历年典型考题及考点剖析附带答案详解试卷2套
- 2026年春季学期学校红领巾广播站工作计划及栏目设置表更新通知
- 小儿静脉血栓栓塞症诊疗指南
- 2026云南昆明巫家坝商业运营管理有限公司校园招聘8人笔试备考题库及答案解析
- 五年级数学下册期末真题卷(人教版成都锦江区)
- 培训学校理事会监督制度
- 2026年中煤一局集团有限公司招聘备考题库及一套完整答案详解
- (2025年)机械操作手安全培训试题及答案
评论
0/150
提交评论