第3章控制结构

上传人:新** 文档编号:567612173 上传时间:2024-07-21 格式:PPT 页数:50 大小:205KB
返回 下载 相关 举报
第3章控制结构_第1页
第1页 / 共50页
第3章控制结构_第2页
第2页 / 共50页
第3章控制结构_第3页
第3页 / 共50页
第3章控制结构_第4页
第4页 / 共50页
第3章控制结构_第5页
第5页 / 共50页
点击查看更多>>
资源描述

《第3章控制结构》由会员分享,可在线阅读,更多相关《第3章控制结构(50页珍藏版)》请在金锄头文库上搜索。

1、第第3章章 控制结构控制结构阵占名捶伞卓吗羞伍泼戚睬磊猴扯纱划婚实梳婴唁刘捎起弘辊炕幸殷嘶肚第3章控制结构第3章控制结构1台州学院计算机系本章内容本章内容3.1 3.1 程序结构与流程图程序结构与流程图程序结构与流程图程序结构与流程图3.2 3.2 选择控制结构选择控制结构选择控制结构选择控制结构 3.2.1 3.2.1 单行结构条件语句单行结构条件语句 3.2.2 3.2.2 多行结构条件语句多行结构条件语句 3.2.3 3.2.3 多分支选择控制结构多分支选择控制结构3.3 3.3 循环控制结构循环控制结构循环控制结构循环控制结构 3.3.1 ForNext3.3.1 ForNext循环循

2、环 3.3.2 WhileWend3.3.2 WhileWend循环循环 3.3.3 DoLoop3.3.3 DoLoop循环循环 3.3.4 3.3.4 多重循环多重循环慌晤刺掏澳节薪里轮暖鲤屠于感示滩况桩烙党杂求疡病恢锁珍铀扇障捍锈第3章控制结构第3章控制结构2台州学院计算机系3.1 程序结构与流程图程序结构与流程图娟本匹籽呆靡辛仔皱憾嘴制巍之疥字尤巨铱紫雁嗣礼峦帕渣傍烈演旁绸防第3章控制结构第3章控制结构3台州学院计算机系3.1 程序结构与流程图程序结构与流程图三种基本结构的共同特点:只有一个入口,一个出口。只有一个入口,一个出口。无死语句,所谓无死语句,所谓“ “死语句死语句” ”是指

3、始终不执行的是指始终不执行的语句。语句。无死循环,即循环次数是有限的。无死循环,即循环次数是有限的。顺序结构是程序中最简单、最基本的结构。在顺序结构中,程序的执行过程是从上往下一行一行地执行。执行的顺序与程序中语句的排列顺序相同。坑睹薯磕挪震惠罚芥策唆听锌唯简汇零给许船胖澎隙呛撅隆苦葱巡评苯厕第3章控制结构第3章控制结构4台州学院计算机系3.2 程序结构与流程图程序结构与流程图3.2.1 单行结构条件语句3.2.2 多行结构条件语句3.2.3 多分支选择控制结构苑雷凉敢声传决纷拖屯阑界氢窜宏卜尿诱校雪渗可讫恩作仍曝很赃租吨厚第3章控制结构第3章控制结构5台州学院计算机系3.2.1 单行结构条件

4、语句单行结构条件语句 单行单行If If语句的格式如下:语句的格式如下: If If Then Then Else Else 2 该语句的功能是:当条件成立时执行语句块该语句的功能是:当条件成立时执行语句块1 1,否则执行,否则执行语句块语句块2 2;ElseElse和语句块和语句块2 2可以缺省。可以缺省。 说明:说明: (1 1)单行)单行If If 语句必须在同一行内写完。语句必须在同一行内写完。 (2 2)“ “条件条件” ”可以是关系表达式或布尔表达式,还可以可以是关系表达式或布尔表达式,还可以是任何计算数值的表达式,是任何计算数值的表达式,Visual BasicVisual Ba

5、sic会将其结果转换会将其结果转换成成TrueTrue或或FalseFalse。如果该值是。如果该值是0 0,则被视为,则被视为FalseFalse,所有非,所有非0 0值被视为值被视为TrueTrue。 (3 3)“ “语句块语句块” ”可以是一条语句,也可以是多条语句;如可以是一条语句,也可以是多条语句;如果是多条语句,那么语句与语句之间用冒号分割。果是多条语句,那么语句与语句之间用冒号分割。拾隔焦柳晾刽候芒糯俯汝灌耙凝禽这挑羔杀剩甸觅摸烽狰咋揍丑栽异褪诫第3章控制结构第3章控制结构6台州学院计算机系3.2.1 单行结构条件语句单行结构条件语句【例3-1】编程,在文本框中输入你的身高,如果

6、小于165,那么显示“你的身高不够”。郁善捉溯玩亢敦昨盼取遥曲钻谐仙窿牧醚抚玫使负暖靖售柏翰买尖腊耐揖第3章控制结构第3章控制结构7台州学院计算机系3.2.1 单行结构条件语句单行结构条件语句【例【例3-13-1】编程,在文本框中输入你的身高,如果】编程,在文本框中输入你的身高,如果小于小于165165,那么显示,那么显示“ “你的身高不够你的身高不够” ”。在窗体上建立文本框控件在窗体上建立文本框控件Text1Text1和命令按钮和命令按钮Command1Command1。编制事件过程。编制事件过程 Command1_Click Command1_Click 如如下:下: Private S

7、ub Command1_Click() Private Sub Command1_Click() If Text1.Text 165 Then Print If Text1.Text 165 Then Print 你的身高不够你的身高不够 End SubEnd Sub流撑芍挺们鸽舱咒龙嫉殆曾曼型摊王拒注多量塞王皑葱验腮中次装脏魏究第3章控制结构第3章控制结构8台州学院计算机系3.2.1 单行结构条件语句单行结构条件语句【例3-2】输入x,计算y的值,其中:殷认拜毋受淹贼岗挪苫费述裙莎豹乍室凄窟粤铬赠侮廷旅伏札柿糕溢鬃试第3章控制结构第3章控制结构9台州学院计算机系3.2.1 单行结构条件语句单

8、行结构条件语句分析:该题是数学中的一个分段函数,它表示当时,用公式来计算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窒埠冒也骤刨河咸命电正史萄攫凶邑钢善教茁钉腊陇漏涧泉苛俘秧泣希灸第3章控制结构第3章控制结构11台州学院计算机系3.2.2 多行结构条件语句多行结构条件语句多行IF语句格式为:If Then ElseIf Then ElseIf Then Else End If执行过程:V

9、isual Basic首先测试条件1,如果它为False,Visual Basic就测试条件2,依次类推,直到找到一个为True的条件。当它找到一个为True的条件时,Visual Basic就会执行相应的语句块,然后执行End If后面的代码。作为选择,可以包含Else语句块,如果所有条件都为False,则执行Else语句块。赠库幽矗族囚葡相不溺骤夫具埔裕钱耍盒砷耕肇篡尉览绑匝馁拉我嫉匈代第3章控制结构第3章控制结构12台州学院计算机系3.2.2 多行结构条件语句多行结构条件语句我们把例3-2用多行If语句完成,程序代码如下:Private Sub Command1_Click() Dim

10、x As Single, y As Single x = Text1.Text If x = 2 Then y = x * x + 3 * x Else y = 1 - 3 * x End If Text2.Text = yEnd Sub 匪赣够被吃忻芍处悍茫揣权痊潍笼堵卤两打虫衍咙夕貌拦种畅熏熏斋砒血第3章控制结构第3章控制结构13台州学院计算机系3.2.2 多行结构条件语句多行结构条件语句【例3-3】输入学生成绩(百分制),判断该成绩的等级(优、良、中、及格、不及格)。界面设计略,程序代码如下:Private Sub Command1_Click() Dim score As Single

11、, temp As String score = Val(Text1.Text) temp = 成绩等级为: If score 0 Then Label2.Caption = 成绩出错 ElseIf score 60 Then 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 sco

12、re z * 1.1 Then体重高于标准体重*1.1 Label5.Caption = 偏胖,注意节食 ElseIf y z * 0.9 Then体重低于标准体重*0.9 Label5.Caption = 偏瘦,增加营养 Else其他为正常 Label5.Caption = 正常,继续保持 End IfEnd Sub邢惑刁痕倒栖弦矩大慑捍品伤氨厄垂凡郊鹃诞勇沼舰浓妒恩滁百榨横药潞第3章控制结构第3章控制结构16台州学院计算机系3.2.2 多行结构条件语句多行结构条件语句【例3-5】编写程序求一元二次方程式的根,用InputBox函数输入a、b、c,计算结果通过MsgBox函数显示。程序代码如

13、下: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 0 Then MsgBox (方程无实根!) Else If d = 0 Then x1 = -b / (2 * a) MsgBox (X1=X2= & x1) Else x1 = (-b + Sqr(d) / (2

14、* a) x2 = (-b + Sqr(d) / (2 * a) MsgBox (X1= & x1 & X2= & x2) End If End IfEnd Sub督沦乏沽臀氧唬在征板滩洞跺揪氖红愚浚气营胳汾但减递晰叉泣蹈撂索薪第3章控制结构第3章控制结构17台州学院计算机系3.2.3 多分支选择控制结构多分支选择控制结构Select Case语句的语法格式如下:Select Case Case Case Case Else End Select执行流程:先对“测试表达式”求值,然后将测试表达式的值按从上到下的顺序与每一个Case的表达式列表值进行比较。如果相符,就执行该Case分支的语句块,

15、并把控制转到End Select后面的语句;如果没有找到相符,则执行与Case Else子句有关的语句块,然后把控制转到End Select后面的语句。福败婶炳宾孽罢钵劳肤丝桶城泳萌兰罪揩瘁狗氰园高种访驳往若伙欧揍嫩第3章控制结构第3章控制结构18台州学院计算机系3.2.3 多分支选择控制结构多分支选择控制结构【例3-6】用Case语句实现例3-3所完成的功能。程序代码如下:Private Sub Command1_Click() Dim score As Integer, temp As String score = Val(Text1.Text) temp = 成绩等级为: Select

16、Case score Case 0 To 59 Label2.Caption = temp + 不及格 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章控

17、制结构第3章控制结构19台州学院计算机系3.2.3 多分支选择控制结构多分支选择控制结构【例3-7】输入年、月份,输出该月的天数。分析:如果该月是1、3、5、7、8、10或12月份,那么就有31天;如果该月是4、6、9或11月份,那么就有30天;而如果是2月份,还要看该年是否为闰年,闰年29天,否则为28天。判断闰年的条件是(y代表年份):y Mod 4 = 0 And y Mod 100 0 Or y Mod 400 = 0松尸御僳憎蹋风乐癌劲怪后泵襟宙蹭侮吹泵邀怜梧史戴陆师街撰蛾秤褥什第3章控制结构第3章控制结构20台州学院计算机系3.2.3 多分支选择控制结构多分支选择控制结构代码如下:

18、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 And y Mod 100 0 Or y Mod 400 = 0 Then d = 29 Else d = 28 End If End Select Print y; 年; m;

19、月有; d; 天End Sub隐喝刹呸呵僻匈鸽呵擂场坎晓哺杭捷弥羞轴换晓绪昨徽羌捍竣瘩权奢祷葵第3章控制结构第3章控制结构21台州学院计算机系3.2.3 多分支选择控制结构多分支选择控制结构【例3-8】将一个十六进制符号转换为十进制数值,运行效果如图3-4所示。谗枪显凶喘萤诽夫滔庶碑雇蔓掺草敌蕊舀饯韦箩澈耽石予哲绕征诗项螟盼第3章控制结构第3章控制结构22台州学院计算机系3.2.3 多分支选择控制结构多分支选择控制结构代码如下:Private Sub Command1_Click() Dim s As String, n As Integer s = Text1.Text Select Cas

20、e s Case a, A n = 10 Case b, B n = 11 Case c, C n = 12 Case d, D n = 13 Case e, E n = 14 Case f, F n = 15 Case Else n = Val(s) End Select Text2.Text = nEnd Sub 茁侣谦胚梯牧昌绞减凹诵拥愈蓝国庞顿昏萍崎负喳迂意温呢辗贤酶罗探灵第3章控制结构第3章控制结构23台州学院计算机系3.3 循环控制结构循环控制结构3.3.1 ForNext循环3.3.2 WhileWend循环3.3.3 DoLoop循环3.3.4 多重循环雏诽酥英径踩区冀炽卖聋洒

21、徐唤氧谗旬银科撞孪光睹釉辕啤言江净属回匪第3章控制结构第3章控制结构24台州学院计算机系3.3.1 ForNext循环语法格式如下:For = To Step Exit ForNext 执行过程:首先将赋值给,然后判断是否“超过”,若为True时,则结束循环,执行Next后面的下一条语句;否则,执行内的语句,再将自动按增加或减少,再重新判断当前的值是否“超过”,若为True时,则结束循环,否则重复上述过程,直到其结果为真。动翘财遭坦砾眺嗡真苦溅布墟乾酮泽缄拧先靡跪回蹬朗拇衷费传臣士嘘众第3章控制结构第3章控制结构25台州学院计算机系3.3.1 ForNext循环这里所说的“超过”有两种含义,当

22、步长为正值时,检查的值是否大于;当步长为负值时,检查的值是否小于。关于ForNext语句的几点说明:(1)“初值”、“终值”和“步长”均是数值表达式,不一定是整数,还可以是小数。(2)如果“步长”为1,则Step可以省略。(3)关于Exit For:循环中可以在任何位置上放置任意个Exit For语句,以随时退出循环。Exit For经常在条件判断之后使用,例如,IfThen能将控制权转移到紧接在Next之后的语句。(4)循环次数的计算公式为:循环次数=Int(终值-初值)/步长+1。皆声跨恃柜镣贤肚籍怯德孰嗜韵伟烫脏怪瓮查潘祭齿桔捶总啡慢语蝴驯通第3章控制结构第3章控制结构26台州学院计算机

23、系3.3.1 ForNext循环【例3-9】计算1100之间自然数之和。程序代码如下:Private Sub Form_Click() 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,字符型变量的初值

24、为空字符)。尔篇关署愁邹怖蹋臣疽钉幌腹索俯彰痰番扯恳钳锹狸沼捶釉系垣甩渣渔伞第3章控制结构第3章控制结构27台州学院计算机系3.3.1 ForNext循环【例3-10】计算10的阶乘。分析:,也就是说,一个自然数的阶乘,等于该自然数与前一个自然数阶乘的乘积,即从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 Sub榆纂地振责闸瞒橙蒋消概

25、莆姬粒饺娠淖玛溪坑饥生货疏姿涉蔗闲残浓饿盼第3章控制结构第3章控制结构28台州学院计算机系3.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 10 a = a * i sum = sum + a Next i Print sumEnd Sub语句a = a * i也称乘法器。先将a置1(不能置0)。在循环程序中,常用累加器和累乘器来完成各种计算任务。 斧捏录啥喂食挖钙类别萧禹

26、消袒凭颗茂桶侩尖讶邹辟嗡棘饰裔炭糕承屏适第3章控制结构第3章控制结构29台州学院计算机系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 * i s = s + x (2 * n - 1) / t Next i Print sEnd Sub雍特婴佰玖琢猿喜负兹术

27、碾燎蔗天葱斡需影乒触匆肆溃怎唤敬淆硒低晨灾第3章控制结构第3章控制结构30台州学院计算机系3.3.2 WhileWend循环While循环的语法格式如下:While 循环体Wend功能:当条件为真时执行循环体。While循环语句的执行过程如下:如果条件为 True,则执行循环体,当遇到 Wend 语句时,控制返回到 While 语句,并再一次检查条件,如果条件还是为 True,则重复执行。如果不为 True,则程序会从 Wend 语句之后的语句继续执行。赶悄浚激虽节晓唱左响念嫡皖苞蔼蛾匆怀庭审枪容也疯靴冒努财兢芍绷必第3章控制结构第3章控制结构31台州学院计算机系3.3.2 WhileWend

28、循环【例3-13】小李今年8岁,她母亲比她大28岁,编程计算出她的母亲在几年后比她的年龄大一倍,以及那时母女的年龄。代码如下: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 Sub旁霉缩均祸贩赶苏筛蝶取埂迈唁捆腋耿尘跳缠嗽臆灶否建贞抚籽嘉须避哦第3章控制结构第3章控制结构32台州学院计算机系3.3.3 DoLoop循环Do循环的格式如下:格式一:Do While|Until 循环体L

29、oop格式二:Do循环体Loop While|Until Do循环语句的功能是:当指定的条件为True或直到指定的条件变为True之前重复执行一组语句。 产按颗毅烦骇第耻听靠掸卑闭暗春应败屈悬满苟牵霄棱辣拨捍待责凤寇泅第3章控制结构第3章控制结构33台州学院计算机系3.3.3 DoLoop循环说明:(1)选项“While”当条件为True时执行循环体,选项“Until”当条件为False时执行循环体(2)循环体中可以使用“Exit Do”来退出循环,将控制转移到Do循环后一语句即蚕豹戌娜出隆粳稻喧奉徐刨阐羡琴舍特仰式究棚闯啮氓甩熊涛拦稚瘪瞩第3章控制结构第3章控制结构34台州学院计算机系3.3

30、.3 DoLoop循环严弘魂环裳润畸死朝面昭稀侄纷斩合据棕珍茹嗡澜憋甘擒紧康挚坦效氢蝗第3章控制结构第3章控制结构35台州学院计算机系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,那么我们可以在循环的条件中去判断i的值是否小于10,这

31、样能保证循环最多运行10次。然后弹出输入框用于用户输入,假如输入的数字n等于m,那么程序结束。当n等于m时我们可以使用Exit Do来跳出Do WhileLoop循环。邯能枝烂砰治赐汁版熬用喘诉脏栽川二缠甲醚庚劫何狗会瘪它朋茁占跺漫第3章控制结构第3章控制结构36台州学院计算机系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 Ms

32、gBox (太小了,继续猜!) ElseIf m n Then MsgBox (太大了,继续猜!) End If Loop If i = 10 Then MsgBox (猜数失败,游戏结束!)End Sub属将昆惺合初把哟吝看墓勘卤争刹鞠穆彰冬蟹于浅虞姨面椅礁闷卯矢打惜第3章控制结构第3章控制结构37台州学院计算机系3.3.3 DoLoop循环蒂窟蒲部爷紧食豁纪刘襟逗以摇轮担幸不撼育艘刹再徒扬折栗凸联希丧一第3章控制结构第3章控制结构38台州学院计算机系3.3.3 DoLoop循环程序如下:Private Sub Form_Click() Dim i As Integer, s As Sing

33、le, p As Single Dim x As Single, t As Single p = 1 s = 1 x = InputBox(请输入x的值:) Do i = i + 1 p = p * Ip 表示 i 的阶乘 t = x i / pt 表示通项式 s = s + t Loop Until t Sqr(i) Then Print i t = t + 1 End If Next i Print 素数的个数:; tEnd Sub森俱忠恶炬撑兵扯别蘑宏贷跋碰揩倍贮羡韭堆泻惺槽蚁投斗捂梆捌送追赂第3章控制结构第3章控制结构45台州学院计算机系3.3.4 多重循环笋力低意塔俘粥悠丧钒朱麓柱赛

34、梳胖现未讽竟咎脐皮永幕银辰霍康炒阴炳第3章控制结构第3章控制结构46台州学院计算机系3.3.4 多重循环代码如下:Private Sub Form_Click() Dim i As Integer, j As Integer For i = 1 To 6 Print Space(15 - i); For j = 1 To 2 * i - 1 Print *; Next j Print Next iEnd Sub论菲葬疙索邢灌树埠履奄孟厚悬坍捞磷鉴淹理长拱撵输撇底凛厄碘郸叶凑第3章控制结构第3章控制结构47台州学院计算机系3.3.4 多重循环睦策惧藏逸检纠咨釜酪组标捞携铰逐蔗砂威撅凑剃铰撵锑诣凶

35、柒换刽憎盒第3章控制结构第3章控制结构48台州学院计算机系3.3.4 多重循环怂疫祟檀妥郎彻璃帧吝貌甭代犹瓮圆嫉臭蔑大洲狈董牵驯睁仑靶烈佩崭鹿第3章控制结构第3章控制结构49台州学院计算机系程序代码如下:Private Sub Form_Click() Dim i As Integer, j As Integer Dim s As String For i = 1 To 9 For j = 1 To i s = i & * & j & = & i * j Print Tab(j - 1) * 10 + 3); s; Next j Print Next iEnd Sub史大吩谦又孙峨俘攫勺拧啼纷满荒珍疯趋颁鸭琼蚌颖捷秸开润娃钠速耻醒第3章控制结构第3章控制结构50台州学院计算机系

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 资格认证/考试 > 自考

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号