您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 质量控制/管理 > Visual-Basic-清华大学vb编程语言基础-第4讲
第四讲基本控制结构-1内容提要顺序结构选择结构•If-Then语句•If-Then-Else语句•If语句的嵌套•If-Then-ElseIf语句•SelectCase语句语句及书写一般情况下,一行写一个语句并以回车键结束一行写多个语句时,各语句之间要用冒号(:)隔开一个语句的长度不能超过1023个字符一个语句可以写在多行上,各行(除最后一行)的末尾要加上续行符(下划线_),续行符与它前面的字符至少要有一个空格语句中的命令词、函数、变量名等不区分大小写顺序结构顺序结构中各语句按出现的先后次序执行,它是任何程序的主体结构。组成顺序结构的语句基本上是赋值语句、输入语句和输出语句。输入{文本框InputBox输出{Print方法标签、文本框MsgBox赋值语句赋值语句用来为变量或对象的属性赋值。[Let]变量名=表达式[Let][对象名].属性名=表达式赋值语句的功能是计算赋值号右边表达式的值并把得到的值赋给赋值号左边的变量或对象的属性。x=50sum=sum+itext1.text=hello赋值语句中的赋值号“=”与数学上的等号写法一样,但意义不一样。赋值语句中赋值号左右两边的数据类型必须一致才能赋值,如果数据类型相关但不一致,VisualBasic会强制将表达式的值转换为变量的数值类型然后再赋值,如果数据类型不相关,会在编译时出现错误。暂停、结束、注释语句暂停语句用来暂时停止程序的执行,执行Stop语句时,会自动打开“立即”窗口。结束语用来结束一个程序的执行注释语句为了增加程序的可读性StopEndRem注释内容’注释内容注释语句是非执行语句,不被编译和执行,任何字符(包括汉字)都可以作为注释内容。注释语句一般放在过程、模块的前面作标题用,或放在执行语句的后面作解释说明,在后一种情况下,注释语句必须是最后一个语句,并且其前面不能是续行符。使用控件输入和输出PrivateSubCommand1_Click()DimrAsSingle,sAsSingle,pAsSingleConstPI=3.14159r=Val(Text1.Text)p=2*PI*rs=PI*r*rLabel2.Caption=面积为:&s&Chr(13)&周长为:&pEndSub输入圆半径,输出面积和周长选择结构在程序设计中经常要对给定的条件进行分析、比较和判断,并根据判断的结果采取不同的操作,这就是选择结构。如根据学生成绩(grade)决定打印输出:当grade60时,输出“通过”,当grade60时,输出“不通过”,VisualBasic中实现选择结构的语句是条件语句和多分支的情况语句,其中条件语句也称为If语句,有两种:If-Then语句、If-Then-Else语句。If-Then语句If-Then语句是单分支条件语句,有两种格式:单行结构和块结构。条件语句(块)真假If条件Then语句If条件Then语句块EndIfIfgrade=60ThenPrint“通过”Ifx100Thenx=x+10:y=y+x:z=z+yIfx100Thenx=x+10y=y+xz=z+yEndIf“条件”可以是逻辑表达式、关系表达式或数值表达式,通常把关系表达式和数值表达式看作是逻辑表达式的特例。当“条件”是数值表达式时,非0值表示真(True),0表示假(False);当“条件”是关系表达式或逻辑表达式时,-1表示真,0表示假。If语句---例1输入三个数,输出三个数中的最大值。分析:使用InputBox函数逐一输入三个数据,并用变量保留输入的数据,然后用If-Then语句找最大值,最后用Print方法在窗体上输出最大值。PrivateSubCommand1_Click()Dima!,b!,c!,max!a=Val(InputBox(请输入第一个数))b=Val(InputBox(请输入第二个数))c=Val(InputBox(请输入第三个数))max=a'假设a是最大值maxIfbmaxThenmax=b'比较后保留最大值IfcmaxThenmax=cPrintPrintTab(3);输入的三个数为:&a&,&b&,&cPrintTab(3);最大值为:&maxEndSub求最大值的一般算法首先假设第一个数为最大值,用最大值和第二个数比较,若第二个数大于最大值,就用第二个数替代原来的最大值,然后用最大值和第三个数比较,……,以此类推,直到比较完所有的数,最后得到的最大值就是所有参加比较的数中的最大值。If语句---例2输入三个数,按从小到大的顺序输出分析:使用InputBox函数输入三个数据,然后用If-Then语句把输入的三个数据按从小到大的顺序排序,最后用Print方法在窗体上输出已按从小到大排好序的数据。PrivateSubCommand1_Click()Dima!,b!,c!,temp!a=Val(InputBox(请输入第一个数))b=Val(InputBox(请输入第二个数))c=Val(InputBox(请输入第三个数))PrintPrint输入的三个数为:;a;,;b;,;cIfabThentemp=a:a=b:b=tempIfacThentemp=a:a=c:c=tempIfbcThentemp=b:b=c:c=tempPrint从小到大顺序为:;a;,;b;,;cEndSubabc321231132123交换两个变量值的算法在程序设计中要交换两个变量的值,必须借助第三个变量,如交换变量a和b的值:假设初始状态时,a=4,b=9需要第三个变量temp保留变量a或b的值temp=a‘temp保留变量a的值4a=b‘把变量b的值9赋给ab=temp‘把变量temp的值4赋给btempab123a=bb=a??执行上面三条语句后,变量a和变量b的值正确交换。If-Then-Else语句If-Then-Else语句是双分支条件语句,根据条件的真假决定执行哪个语句,有两种格式:单行结构和块结构。If条件Then语句1Else语句2If条件Then语句块1Else语句块2EndIf条件语句(块)1语句(块)2真假Ifgrade=60ThenPrint通过ElsePrint不通过If-Then-Else语句-例输入x,求y的值。其中:11101xxyxxPrivateSubCommand1_Click()Dimx!,y!x=Val(Text1.Text)Ifx=-1Theny=Sqr(x+1)Elsey=10-xEndIfText2.Text=yEndSubIf语句的嵌套块结构的If-Then-Else语句中,语句块1和语句块2本身也可以是一个If语句,这就是If语句的嵌套。使用嵌套的If语句,可实现复杂的判断。例:编写程序,输入某一年份,判断是否是闰年。分析:判断某个年份是闰年,只要年份满足下列两个条件之一:条件1:能被4整除,但不能被100整除的年份是闰年条件2:能被100整除,并能被400整除的年份是闰年四年一闰,百年不闰,四百年再闰闰年问题流程图ymod4=0ymod100=0ymod400=0Leap=1Leap=0Leap=1Leap=0TTTFFFleap输出”是闰年”输出”不是闰年”ymod4=0ymod100=0ymod400=0Leap=1Leap=0Leap=1Leap=0TTTFFFleap输出”是闰年”输出”不是闰年”TFIf语句的嵌套-判断闰年Dimyear%,leap%year=Val(InputBox(请输入年份))IfyearMod4=0ThenIfyearMod100=0ThenIfyearMod400=0Thenleap=1Elseleap=0EndIfElseleap=1EndIfElseleap=0EndIfIfleapThenPrintyear,是闰年ElsePrintyear,不是闰年EndIf整数leap,用来保存判断的结果嵌套的If语句时采用缩进的格式,可增加程序的可读性。If语句的嵌套-成绩等级输入学生百分制成绩,判断成绩等级判断标准为:grade60不通过60≤grade80通过80≤grade90良好90≤grade≤100优秀grade60grade80grade90显示”不通过”显示”通过”显示”良好”显示”优秀”TFTTgrade60grade80grade90显示”不通过”显示”通过”显示”良好”显示”优秀”TFTTFFIf语句的嵌套-成绩等级PrivateSubCommand1_Click()DimgradeAsIntegergrade=Val(Text1.Text)Ifgrade60ThenLabel2.Caption=不通过ElseIfgrade80ThenLabel2.Caption=通过ElseIfgrade90ThenLabel2.Caption=良好ElseLabel2.Caption=优秀EndIfEndIfEndIfEndSubIf-Then-ElseIf语句If-Then-ElseIf语句,是在Else分支中嵌套If语句的精简语句If条件1Then语句块1ElseIf条件2Then语句块2……ElseIf条件nThen语句块n[Else语句块n+1]EndIfIf条件1Then语句块1Elseif条件2Then语句块2else……if条件nThen语句块nelse语句块n+1EndIf……EndIfIf-Then-ElseIf语句流程图条件1条件2条件n语句块1语句块2语句块n语句块n+1TTTFFF条件3语句块3TF首先判断条件1,如果条件1为真,则执行语句块1,如果条件1为假,再判断条件2,如果条件2为真,执行语句块2,如果条件2为假,再判断条件3……,依此类推,一但找到条件为真的条件,立即执行其相应的语句块,然后退出If-Then-ElseIf语句,执行EndIf语句后面的语句。如果所有的条件都不满足,则执行Else语句下面的语句块n+1,然后执行EndIf后面的语句。If-Then-ElseIf语句-例1用If-Then-ElseIf语句语句改写上例(成绩等级)程序PrivateSubCommand1_Click()DimgradeAsIntegergrade=Val(Text1.Text)Ifgrade60ThenLabel2.Caption=不通过ElseIfgrade80ThenLabel2.Caption=通过ElseIfgrade90ThenLabel2.Caption=良好ElseLabel2.Caption=优秀EndIfEndSubPrivateSubCommand1_Click()DimgradeAsIntegergrade=Val(Text1.Text)Ifgrade60ThenLabel2.Caption=不通过ElseIfgrade80ThenLabel2.Caption=通过ElseIfgrade90ThenLabel2.Caption=良好ElseLabel2.Caption=优秀EndIfEndIfEndIfEndSub避免深层缩进,只需一个EndIf语句If-Then-ElseIf语句-例2Dimyear%,leap%year=Val(InputBox(请输入年份))IfyearMod40Thenleap=0ElseIfyearMod1000Thenleap=1ElseIfyearMod400=0Thenleap=1Elseleap=0EndIfIfleapThenPrintyear,是闰年ElsePrintyear,不是闰年EndIfYearmod40Leap=0Yearmod1000Leap=1Yearmod400=0Leap=1Leap=0TTTFFF用If-Th
本文标题:Visual-Basic-清华大学vb编程语言基础-第4讲
链接地址:https://www.777doc.com/doc-3661876 .html