资源描述
,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,*,单击此处编辑母版标题样式,第四章 基本的控制结构,4.1,顺序结构,4.2,选择结构,4.3,循环结构,4.4,其他辅助控制语句,4.5,常用算法(一),4.6,常见错误,(顺序、条件、循环),1,4.1,顺序结构,一个,VB,程序由两部分组成:即,Viasual,和,Basic,,,前者是由众多的对象构成了程序的可视界面,在,VB,中,界面设计非常方便、直观;后者是响应各种事件的程序代码,也是程序设计的重点和难点。,VB,也具有结构化程序设计的三种结构,即,顺序结构,、,选择结构,、,循环结构,,它是程序设计的基础。,2,4.1,顺序结构,顺序结构就是各语句按出现的先后次序执行。,一般的程序设计语言中,顺序结构的语句主要是赋值语句、输入,/,输出语句等。,在,VB,中也有,赋值,语句;而输入,/,输出可以通过,文本框控件,、,标签控件,、,Print,方法,、,InputBox,函数、,MsgBox,函数和过程,等来实现。,3,4.1,顺序结构,4.1.1,赋值语句(,=,),4.1.2,与用户交互函数和过程,InputBox,函数,MsgBox,函数和过程,4,4.1.1,赋值语句,形式:,变量名表达式,或,.=,例:,Total=99,Text1.Text,Str,$,(Total,),Text1.Font.Size=12,作用,:,计算右边表达式的值,然后赋给左边的变量。,一般用于给变量赋值或对控件设定属性值。,5,赋值语句,(,1,)当表达式为数值型而与变量精度不同时,强制转换成左边变量的精度。,例:,iA,%=10 /3,iA,中的结果为,3,(,2,)当表达式是数字字符串,左边变量是,数值类型,?,例:,M%=,abcd,出错,自动转换成数值类型再赋值,但当表达式有非数字字符或空串时,则出错,(注意的问题),6,赋值语句(注意的问题),(,3,)逻辑型与数值型之间的转换。,Dim flog As Boolean,i!,i=2.5,flog=True,Print Spc(2);i+flog,Dim flog As Boolean,i!,i=2.5,flog=,0,Print Spc(2);i+flog,False,1.5,2.5,逻辑数据转换为整形数据时,,True,为,-1,,,False,为,0,2.5,5,1.5,其他类型数据转换为逻辑数据时,非,0,转换为,True,,,0,转换为,False,。,7,赋值语句(注意的问题),(,4,)任何非字符类型赋值给字符类型,自动转换为字符类型。,赋值号,左边,只能是,变量,,不能是常量、常数符号或表达式。,注意:,例:,x+y,=3,5=y,Dim,i!,k!,i=8,k=3,Print Spc(2);i+k=3,思,考,题,i+(k=3),8,赋值语句,不能在一句赋值语句中,同时给多个变量赋值。,5,n,6,n,n=n+1,例:,x,=,y,=,z,=1,赋值语句兼有计算与赋值双重功能,.,变量未赋值时,数值型变量值为,0,,字符串变量值,为空串,。,9,【,上机练习,】,设有变量,A,和,B,,编写程序交换两个变量的值。,赋值语句,A,B,C,10,4.1,顺序结构,4.1.1,赋值语句(,=,),4.1.2,与用户交互函数和过程,InputBox,函数,MsgBox,函数和过程,11,4.1.2,与用户交互函数和过程,InputBox,函数,形式:,InputBox(prompt,Title,default,Xpos,Ypos,),其中:,提示项不能省略。若要多行显示,可在每,行行末加回车换行符号常数,vbCrLf,。,作用:,打开一个对话框,等待用户输入,,返回,字,符串类型的,输入值,。,Chr(13)+chr(10),12,【,例,】,要在屏幕上显示图示的对话框:,Dim,strName,As String*40,strName,=,InputBox,(,请输入你的姓名,+,vbCrLf,+,然后单击确定,输入框,),InputBox,函数,-,实例,1,13,InputBox,函数,-,实例,2,【,上机练习,】,利用,InputBox,输入基本工资和营业额,按营业额的,5%,提成,计算出实发工资(计算结果精确百分位)后显示。,14,4.1.2,与用户交互函数和过程,2,MsgBox,函数,形式:,变量,%=,MsgBox,(,Prompt,Button,Title,),区别:,MsgBox,函数返回所选按钮的值,,MsgBox,过程不返回值,作用:,打开一个信息框,等待用户选择一个按钮。,3,MsgBox,过程,形式:,MsgBox,Prompt,Button,Title,15,例,:,Private Sub Command1_Click(),A=,MsgBox,(,提示信息,),End Sub,例,:,换行,Private Sub Command1_Click(),A=,MsgBox,(,第一行,&,Chr(13),&,第二行,),End Sub,16,例,:,Private Sub Command1_Click(),A=,MsgBox,(,提示信息,标题内容,),End Sub,例,:,按钮类型,0,到,5,或符号常量 见表,1.4.1,Private Sub Command1_Click(),A=,MsgBox,(,提示信息,1,标题内容,),End Sub,17,例,:,图标类型,16,、,32,、,48,、,64,或符号常量 见表,Private Sub Command1_Click(),A=,MsgBox,(,提示信息,16,标题内容,),End Sub,例,:,默认按钮,0,,,256,,,512,Private Sub Command1_Click(),a=,MsgBox,(,提示信息,2+256,标题内容,),Print a,End Sub,32,48,64,C1+C2+C3+C4,按回车打印,?,18,MsgBox,按钮设置,第,3,个按钮为默认,512,VbDefaultButton3,第,2,个按钮为默认,256,VbDefaultButton2,第,1,个按钮为默认,0,VbDefaultButton1,默认,按钮,信息图标,64,VbInformation,警告信息图标,48,VbExclamation,询问信息图标,32,VbQuestion,关键信息图标,16,VbCritical,图标,类型,重试、取消按钮,5,VbRetryCancel,是、否按钮,4,VbYesNo,是、否、取消按钮,3,VbYesNoCancel,终止、重试、忽略按钮,2,VbAbortRetryIgnore,确定、取消按钮,1,VbOkCancel,确定按钮,0,VbOkOnly,按钮,数目,描 述,值,内 部 常 数,分组,19,MsgBox,所选按钮返回值,vbNo,7,否,vbYes,6,是,vbIgnore,5,忽略,vbRetry,4,重试,vbAbort,3,终止,vbCancel,2,取消,vbOk,1,确定,内部常数,返回值,被单击的按钮,20,小结,:,输入,计算,输出,赋值语句,文本框,IntputBox,函数,赋值语句,标签,文本框,Print,语句,MsgBox,函数,21,4.2,选择结构程序设计,在结构化程序设计中,基本控制结构包括,顺序结构、选择结构和循环结构。,选择结构能根据指定条件的当前值在两条或多条程序路径中选择一条执行,VB,中选择结构语句包含,If,和,Select Case,两种。,22,4.2.1,If-Then-Else-End If,结构语句,IfThen,语句,(,单分支结构,),If Then Else,语句,(,双分支结构,),If Then,ElseIf,语句,(,多分支结构,),If,语句的嵌套,23,上一页,下一页,4.2.1 If,条件语句,1.If,Then,语句,(,单分支结构,),形式:,If Then,语句块,(一条或多条语句),End If,或,If Then,只能是一条语句,或者是语句间用冒号分隔,且几条语句必须在一行上。,24,单分支结构,【,例,】,已知三个数,x,,,y,和,z,,比较它们的大小,使得,xyz,使用,If Then,语句块,(一条或多条语句),End If,或,If Then,实现,例如三个数分别为:,1 2 3,25,单分支结构,【,例,】,判断数值的符号。正数为,1,,负数为,-1,,零为零。,If,x0,Then,y=1,If,x 0,Then,y=1,ElseIf,x 0,Then,y=-1,Else,y=0,End If,【,例,】,判断数值的符号。正数为,1,,负数为,-1,,零为零。,30,If,语句的嵌套是指,If,或,Else,后面的语句块中又包含,If,语句,如:,If,语句的嵌套,If,表达式,1 Then,If,表达式,11 Then,End If,End If,If,keyAscii,=13 Then,If,IsNumric(text2),Then,Text3=“,正确”,else,End If,End If,31,【,上机练习,】,【,例,】,通过,InputBox,输入三角形边长,根据边长判断,三角形类型(等边、等腰、直角),并计算面积。,使用,多分枝,结构实现,32,4.2.2 Select Case,语句,Select Case,变量或表达式,Case,表达式列表,1,语句块,1,Case,表达式列表,2,语句块,2,Case Else,语句块,n+1,End Select,表达式列表,与,变量或表达式,的类型必须相同,可以是下面,4,种形式之一,:,表达式 例,:,A,一组用逗号分隔的枚举,值,2,4,6,8,表达式,1 To,表达式,2,60 To 100,Is,关系运算符表达式,Is 0 And y 0 Then,Print,在第一象限,ElseIf,x 0 Then,Print,在第二象限,ElseIf,x 0 And y 0 And y 0,And,y 0,Print,在第一象限,Case x 0,Print,在第二象限,Case x 0,And,y 0,And,y 0,And,y 0,Print,在第一象限,Case x 0,Print,在第二象限,Case x 0,And,y 0,And,y 0,Print,在第四象限,End Select,代码二错误,:,1.Select Case,后不能出现多个变量;,2.Case,后不能出现变量及有关运算符,。,36,【,上机练习,】,【,典型应用,】,铁路托运行李,规定每张客票的托运费的计算方式是:行李重量不超过,50,千克,每千克,0.25,元;超过,50,千克但不超过,100,千克,其超过部分每千克,0.35,元;超过,100,千克,其超过部分每千克,0.45,元,编写程序,输入行李重量,计算托运的费用。,分别使用,if,语句和,select,语句实现,37,4.2.3,条件函数,1,),IIf,函数,IIf,(表达式,真值部分,假值部分),2,),Choose,函数,Choose,(,数字型变量,值为,1,的返回值,值为,2,的返回值,),例如,,Nop,是,14,的值,转换成,+,、,-,、,、,运算符的语句如下:,Op=Choose,(,Nop,,,+,,,-,,,,,),38,条件函数,例,【,上机练习,】,根据当前日期函数,WeekDay,,,利用,Choose,函数显示文本框中的日期是星期几。,39,常 见 错 误,1,在选择结构中缺少配对的结束语句,对,多行式,的,If,块语句中,应有配对的,End If,语句结束。,2.,多边选择,ElseIf,关键字的书写和条件表达式的表示,ElseIf,不要写成,Else If,;,3.Select Case,语句的使用,Select Case,后不能出现,多个变量,;,Case,子句后,不能出现变量,。,40,
展开阅读全文