[其它技巧]VB3.ppt
《[其它技巧]VB3.ppt》由会员分享,可在线阅读,更多相关《[其它技巧]VB3.ppt(88页珍藏版)》请在三一办公上搜索。
1、第3章 Visual Basic语言进阶,3.1 基本控制结构,3.1.1 顺序结构,顺序结构就是整个程序按书写顺序依次自上而下执行。前面两章设计和编写的程序都是顺序结构的。顺序结构如图所示,先执行A,再执行B,即自上而下依次运行。图 左(左)图为框式流程图,图(右)为N-S流程图,又称为盒图。,3.1.2 分支结构,分支结构用于判断并分支,又称为选择结构。,如图所示,E代表条件,当E条件成立(True)时执行A,否则(False)执行B,两条分支汇合在一起为一个出口。分支结构有几种形式:If.Then.Else结构、Select Case结构和IIf函数。,3.1.2 分支结构,1If.Th
2、en.Else结构If.Then.Else结构表示“如果.就.否则”。语法:If 条件 Then 语句或者:If 条件1 Then 语句块1 ElseIf 条件2 Then 语句块2.Else语句块nEnd If,条件可以为各种表达式,都要转换为Boolean型,即所有非零的数值、字符等都转换为True,而0、0值则转换为False。当If.Then.Else结构只有单独的If语句时,可以没有End If语句。首先测试条件1,如果为 False,就测试条件2,依此类推,直到找到一个为 True 的条件就执行Then后面的语句块。当只有一个条件而且执行的是单个语句时,If.Then.Else结构
3、可以简化成If.Then语句。,3.1.2 分支结构,【例3-1】使用If.Then语句查询学生的成绩,大于等于60分的为及格,其余为不及格格。界面设计:在窗体界面中创建两个文本框(Text1、Text2)、两个标签(Label1、Label2)和一个按钮(Command1)。文本框Text1输入分数,单击按钮Command1则在文本框Text2中显示成绩。,3.1.2 分支结构,程序代码如下:Private Sub Command1_Click()单击按钮显示成绩 Dim x As Single Dim y As String x=Val(Text1.Text)y=不及格 If x=60 T
4、hen y=及格 Text2.Text=yEnd Sub程序分析:使用If.Then语句,当满足条件“x=60”就执行Then后面的语句“y=及格”,否则就执行If.Then语句后面的语句。,3.1.2 分支结构,【例3-2】使用If.Then.Else结构查询学生的成绩,大于等于60分的为及格,其余为不及格。界面设计和功能要求与【例3-1】相同,程序流程图如图所示。程序代码如下:,Private Sub Command1_Click()单击按钮显示成绩 Dim x As Single Dim y As String x=Val(Text1.Text)If x=60 Then y=及格 Els
5、e y=不及格 End If Text2.Text=yEnd Sub,3.1.2 分支结构,【例3-3】使用多个条件的If.Then.Else结构查询学生的成绩,将成绩分成优、良、中、及格和不及格,90100为优,8090为良,7080为中,6070为及格,60以下为不及格。,3.1.2 分支结构,程序代码如下:Private Sub Command1_Click()单击按钮显示成绩 Dim x As Single Dim y As String x=Val(Text1.Text)If x=90 Then y=优 ElseIf x=80 Then,y=良 ElseIf x=70 Then y=
6、中 ElseIf x=60 Then y=及格 Else y=不及格 End If Text2.Text=yEnd Sub,程序分析:使用有多个条件的If.Then.Else结构,判断的顺序是“x=90”“x=80”“x=70”“x=60”剩下的就是“x60”。,3.1.2 Select Case语句(情况语句)形式:Select Case 变量或表达式Case 表达式列表1语句块1Case 表达式列表2语句块2Case Else语句块n+1End Select:与同类型的下面四种形式之一:表达式 例:A+5一组枚举表达式(用逗号分隔)2,4,6,8 表达式1 To 表达式2 60 to 10
7、0 Is 关系运算符表达式 Is 60,数值型或字符串表达式,3.1.2 分支结构,【例3-4】使用Select Case 结构实现学生成绩的查询,将成绩分成优、良、中、及格和不及格,90100为优,8090为良,7080为中,6070为及格,60以下为不及格。,Case 70 To 79 y=中 Case 60 To 69 y=及格 Case Else y=不及格 End SelectSub Text2.Text=yEnd,Private Sub Command1_Click()单击按钮显示成绩 Dim x As Single Dim y As String x=Int(Text1.Text
8、)Select Case x Case 90 To 100 y=优 Case 80 To 89 y=良,程序分析:x=Int(Text1.Text)用来将分数取整,因为分数可能是小数。“Case 90 To 100”后面的值使用连续的范围表示90100。,3.1.2 分支结构,3.IIf函数If.Then.Else 结构当只有一个条件时还可以使用IIf函数来实现,用IIf函数语句可以说是If.Then.Else 结构的简写版本。语法:IIF(条件,真部分,假部分)说明:IIf函数的步骤是先判断条件,当条件为True时执行真部分,否则就执行假部分。在【例3-2】中当分数=60为及格,否则为不及格
9、的关系可以用IIf函数表示为:y=IIf(x=60,及格,不及格),4.选择结构的嵌套 在IF语句的Then分支和Else分支中可以完整地嵌套另一IF语句或Select Case语句,同样Select Case语句每一个Case分支中都可嵌套另一IF语句或另一Select Case语句。下面是两种正确的嵌套形式:(1)IF Then.IF Then Else.End If.Else.IF Then.Else.End If.End IF,(2)IF Then.Select Case Case IF Then Else.End If Case.End Select.End IF,注意:只要在一个分
10、支内嵌套,不出现交叉,满足结构规则,其嵌套的形式将有很多种,嵌套层次也可以任意多。对于多层IF嵌套结构中,要特别注意IF与Else的配对关系,一个Else必须与IF配结,配对的原则是:在写含有多层嵌套的程序时,建议使用缩进对齐方式,这样容易阅读和维护。,例,设计一个用户身份验证程序,运行界面如下图所示。,3.1.3循环结构,1DoLoop结构,Do 循环有两种形式。即“当型”循环(While结构)和“直到型”(Do While 结构)循环。“当型”循环结构的程序流程图如图“直到型”循环结构的程序流程图,“当型”循环的语法:Do While|Until 条件 语句块 Exit Do 语句块Loo
11、p,3.1.3 循环结构,“直到型”循环的语法:Do 语句块 Exit Do 语句块Loop While|Until 条件说明:“直到型”循环与“当型”循环所不同的是先执行语句块,然后测试条件,只要条件为 True 就循环语句块;如果条件为 False,则跳过循环体。这种“直到型”循环保证语句块至少被执行一次。,注意:在Do.Loop结构中Until和While不同,判断条件正好相反。Until结构是只要条件为False(而不是 True),就执行循环的语句块,否则跳出循环体。,3.1.3 循环结构,【例 3-6】用“当型”循环计算1到100的和。界面设计:在窗体界面中放置一个文本框Text1
12、、一个标签和一个按钮Command1,单击按钮Command1开始计算1100的和。,序代码如下:Private Sub Command1_Click()单击按钮开始计算 Dim i As Integer,Sum As Integer Sum=0:i=1,Do While i=100 Sum=Sum+i i=i+1 Loop Text1.Text=SumEnd Sub,例 求两个整数的最大公约数、最小公倍数,Dim n%,m%,nm%,r%m=Val(InputBox(m=)n=Val(InputBox(n=)nm=n*mIf m 0)m=n n=r r=m mod n LoopPrint 最
13、大公约数=,n Print 最小公倍数=,nm/n,算法使用转碾除法,流程图如右,实现的程序代码如下:,3.1.3 循环结构,【例3-7】用“直到型”循环While计算1到 100的和。Sum=Sum+i i=i+1 当i=100 直到E为真图3.10 流程图 Sum=0 i=1Text1.Text=Sum 界面设计与图相同,程序代码如下:Private Sub Command1_Click()单击按钮开始计算 Dim i As Integer,Sum As Integer Sum=0:i=1 Do Sum=Sum+i i=i+1 Loop While i=100 Text1.Text=Sum
14、End Sub,如果将循环体外的置初始值语句由“i=1”改为“i=101”,则两种不同 的Do.Loop结构结果就不同了:【例 3-6】判断条件后直接跳出循环,Sum的结果是0;【例 3-7】进入循环体一次后判断条件跳出循环,Sum的结果是101。,3.1.3 循环结构,2ForNext结构 如果已经知道了循环的次数,使用ForNext循环 比 DoLoop循环更方便。语法:For 计数器=初始值 To 终止值 Step 步长语句块Exit For Next 计数器 ForNext循环的步骤:,(1)设置计数器等于初始值。(2)如果步长为正值,则判断计数器是否大于终止值,如果大于则 跳出循环。
15、如果步长为负数则判断计数器是否小于终止值。(3)执行语句块。(4)计数器=计数器步长。(5)循环执行步骤(2)(5)。ForNext循环步长为正值的程序流程图如图所示。,3.1.3 循环结构,【例3-8】用ForNext循环结构 来计算1到100的和,步长为1。Private Sub Command1_Click()单击按钮开始计算 Dim i As Integer,Sum As Integer Sum=0 For i=1 To 100 步长默认为1 Sum=Sum+i Next i Text1.Text=SumEnd Sub,【例3-9】ForNext循环结 构 计算1到100的和,步长-1
16、。Private Sub Command1_Click()单击按钮开始计算 Dim i As Integer,Sum As Integer Sum=0 For i=100 To 1 Step-1 步长为-1 Sum=Sum+i Next i Text1.Text=SumEnd Sub,3.1.3 循环结构,3退出循环结构用 Exit 语句可以直接退出ForNext循环和DoLoop循环。“Exit For”为退出ForNext循环,“Exit Do”为退出DoLoop循环。程序执行时遇到 Exit 语句,就不再执行循环结构中的任何语句立即跳出循环,跳转到循环结构的下一句执行。Exit 语句几乎
17、总是出现在循环体内嵌套的If 语句或 Select Case 语句中。注意:当运行程序进入死循环时,按Ctrl+break 键可以终止程序的运行。,3.1.3 循环结构,【例3-10】用ForNext循环结构来计算1到100的和,当和大于等于3000时终止循环。运行界面如图所示。,Private Sub Command1_Click()单击按钮开始计算 Dim i As Integer,Sum As Integer Sum=0 For i=1 To 100 Sum=Sum+i If Sum=3000 Then Exit For Next i Text1.Text=SumEnd Sub,4.循环
18、的嵌套多重循环结构 如果在一个循环内完整地包含另一个循环结构,则称为多重循环,或循环嵌套,嵌套的层数可以根据需要而定,嵌套一层称为二重循环,嵌套二层称为三重循环。上面介绍的几种循环控制结构可以相互嵌套,下面是几种常见的二重嵌套形式:,(1)For I=.For J=.Next J.Next I,(2)For I=.Do While/Until.Loop.Next I,(3)Do While.For J=.Next J.Loop,(4)Do While/Until.Do While/Until.Loop.Loop,对于循环的嵌套,要注意以下事项:(1)内循环变量与外循环变量不能同名;(2)外循环
19、必须完全包含内循环,不能交叉;(3)不能从循环体外转向循环体内,也不能从外循环转向内循环.正 确错 误,For i=1 To 10 For j=1 To 20 Next i Next j,For i=1 To 10 For i=1 To 20 Next i Next i,For i=1 To 10 For j=1 To 20 Next j Next i,For i=1 To 10 Next i For i=1 To 10 Next i,几种循环语句比较,循环结构与选择结构的嵌套,在循环结构中可以完整嵌套选择结构即整个选择结构都属于循环体。在选择结构中嵌套循环结构时,则要求整个循环结构必须完整地
20、嵌套在一个分支内,一个循环结构不允许出现在两个或两个以上的分支内。,(1)For I=IF Then End IF Next I,(6)IF Then For I=End IF Next I,(5)Select Case For I=Case Case Next I End Select,(3)For I=IF Then Next I End IF,(2)IF Then For I=Next I End IF,(4)For I=Select Case Case Case End Select Next I,3.1.3 循环结构,【例3-11】计算九九乘法表。,创建一个空白的窗体,在单击窗体时计
21、算并显示九九乘法表。,3.1.3 循环结构,程序代码如下:Private Sub Form_Click()单击窗体显示乘法表 Dim i As Integer,j As Integer For i=1 To 9 For j=1 To i,Print Tab(j-1)*10+1);i Next j Next iEnd Sub,程序分析:由于九九乘法表有九行,每行不同列,因此必须使用双重循环来实现。外循环为九九乘法表的行循环,内循环为每行的列循环。内循环的次数每次都不同为1i。使用Print语句在窗体上显示,使用Tab格式每列间隔10个字符。,例 编一程序验证哥德巴赫猜想:一个大于等于6的偶数可以
22、表示为两个素数之和。例如:6=3+3 8=3+5 10=3+7,算法设计:设N为大于等于6的任一偶数,将其分解为N1和N2两个数,使用N1+N2=N,分别判断N1和N2是否为素数,若都是,则为一组解。若N1不是素数,就不必再检查N2是否素数。先从N1=3开始,直到N1=N/2为止。算法流程图如图4-29所示。将程序代码写到窗体的单击事件中。,实现上面算法的程序代码如下:,Private Sub Form_Click()Dim N%,N1%,N2%,I%,K1%,K2%N=Val(InputBox(输入大于6的偶数)For N1=3 To N 2 Step 2 K1=Int(Sqr(N1)For
23、 I=2 To K1 判断N1是否是素数 If N1 Mod I=0 Then Exit For Next I If I K1 Then 如果N1为素数,将N分解为N1+N2 N2=N-N1 K2=Int(Sqr(N2)For I=2 To K2 判断N2是否是素数 If N2 Mod I=0 Then Exit For Next I If I K2 Then 如果N2也为素数,则打印输出 Print N&=&N1&+&N2 End If End If Next N1End Sub,例 统计文本框中英文单词的个数。算法设计(1)从文本(字符串)的左边开始,取出一个字符;设逻辑量WT表示所取字符
24、是否是单词内的字符,初值设为False。(2)若所取字符不是“空格”、“逗号”、“分号”或“感叹号”等单词的分隔符,再判断WT是否为True,若WT不为True,则表示新单词的开始,让单词数Nw=Nw+1;让WT=True。(3)若所取字符是“空格”、“逗号”、“分号”或“感叹号”等单词的分隔符,则表示字符不是单词内字符,让WT=False。(4)再依次取下一个字符,重复(2)(3)步直到文本结束。,Private Sub Command1_Click()Dim Nw As Integer,i As Integer,nL As IntegerDim Wt As BooleanDim strI
25、As String,strT As StringstrI=Text1.TextNw=0:Wt=FalsenL=Len(RTrim(strI)For i=1 To nLstrT=Mid$(strI,i,1)取第i个字符Select Case Asc(strT)字符为空格、!、,、:、;、回车、换行等单分隔字符Case 32,33,44,46,58,59,13,10 Wt=FalseCase Else 当前字符不是单分隔字符 If Not Wt Then 前一个字符是单分隔字符 Nw=Nw+1 Wt=True End IfEnd SelectNext iPicture1.Print 单词数为:,N
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 其它技巧 其它 技巧 VB3
链接地址:https://www.31ppt.com/p-5616539.html