Youmakethefailurecompletewhenyoustoptrying.---当你停止尝试的时候你就完全失败了。第4章顺序结构程序的顺序控制结构是一种线性处理结构,是按照语句排列的先后顺序进行执行的。根据人们解决简单问题的基本过程,顺序控制结构程序的功能应有输入、处理和输出三部分。4.1赋值语句赋值语句的作用有两方面:计算赋值号右边表达式值将计算所得的值赋给左边的变量、对象的属性或自定义类型声明的变量中的元素。赋值语句的形式为:变量名=表达式对象.属性=属性值变量名.元素名=表达式说明:①赋值号不同于比较运算符的相等,关系运算符=的优先级高于赋值号=问题:如何区分=是赋值号还是比较运算符?解答:不像C语言用=和==区分,VB中会自动判断,比如a=b则为赋值;ifa=bthen…..则为判断;a=b是判断.②一条赋值语句只能对一个变量进行赋值X=Y=5编译器只把左边第一个=看做赋值号,其他的=都看做比较运算符。因此首先判断Y=5是否成立,结果为True或者False,再将逻辑值赋值给变量X。执行完毕后,Y的值不变;X的值为True或是False③由数字组成的字符串赋值给数值型变量时,自动转换成数值型;将包含非数字字符的字符串赋值给数值型变量时,系统报错。DimH%H=123‘正确H=“123”‘正确H=“123k”‘错误④赋值号两边同为数值型,但精度不同时,以赋值号左边变量的类型为准,将右边的值转换为左边变量的类型,然后赋值X%=3.14‘X变量的值为3Y!=100‘Y变量的值为100.0000DimA%,B!A=9‘变量A为整型,值为9B=A‘变量B为单精度型,值为9.000000‘但变量A的值不变仍为整数9⑤任何非字符型的值赋值给字符型变量,将自动转换为字符型例4.1演示非字符型的值自动转化为字符型PrivateSubForm_Click()DimX$,Y$‘定义两个变量X和Y,都是变长字符型X=456Print“X=“;X‘X变量的值是字符串”456”PrintVarType(X)‘VarType函数的返回值是8Y=TruePrint“Y=“;Y‘Y变量的值是字符串”True”PrintVarType(Y)‘VarType函数的返回值是8EndSub出错指数:⑥可利用类型转换函数进行类型转换Score=Val(text1.text)⑦逻辑型数据赋值给数值型时,True转换为-1,False转换为0。数值型数据赋值给逻辑型时,非0转换为True,0转换为FalsePrivateSubForm_Click()DimXAsBoolean,YAsIntegerX=-2:PrintXPrintVarType(X)Y=True:Form1.PrintYForm1.PrintVarType(Y)EndSub4.2InputBox与MsgBox4.2.1InputBox函数InputBox函数作用是弹出输入对话框,在其中的文本框中输入数据,函数返回值为字符类型。如图4.4所示。函数格式:变量=InputBox(提示[,标题][,默认值][,x坐标位置][,y坐标位置]4.2.1InputBox函数提示提示消息,可以是字符串常量、字符串变量、字符串表达式,最大长度为1024个字符,不能缺省。若信息要多行显示可加入换行符vbCrLf或Chr(13)回车、Chr(10)换行/新行标题是字符串表达式,缺省值为应用程序文件名缺省值缺省值可以直接按回车键。无缺省值时默认为空串x坐标位置y坐标位置整型表达式,确定对话框左上角的位置例4.3某单位职工工资由500元基本工资和奖金二部分组成,奖金是职工个人营收的20%,试编程计算实发工资。DimSfgz!,Jbgz!,XAsSingle‘定义单精度类型变量Jbgz=500‘变量Jbgz存放的是基本工资X=Val(InputBox(“输入个人营收”,”工资计算”,2000))‘弹出出入窗口,输入个人营收,并将返回值由字符串变为数值Sfgz=Jbgz+X*0.2‘计算实发工资Label1=“个人营收:”&X&”基本工资为:”&Jbgz&vbCrLf‘使用控件label的Caption属性显示信息Label1=Label1&“实发工资:”&Sfgz注意:InputBox函数中的各项参数是有序的,不能随便打乱次序。提示不能省略,其他可省。若省略的参数后面还有参数,要用逗号保留其位置。=和变量不可省略。标题省略默认是工程名。X=Val(InputBox(“输入个人营收”,,2000))InputBox函数的返回值是字符型,可用Val函数转换为数值型。在InputBox函数弹出的对话框中选择《取消》按键时,函数返回空字符串。出错指数:(真题)在窗体上画一个命令按钮,然后编写如下代码:PrivateSubCommand1_Click()a&=InputBox(请输入第一个数“)b&=InputBox(请输入第二个数“)Printb&+a&EndSub程序运行后,单击命令按钮,在两个输入对话框中先后输入12345和54321,程序的输出结果是()A)66666B)5432112345C)1234554321D)出错A4.2.2MsgBox函数或过程MsgBox函数的作用是弹出MsgBox信息对话框,等待用户选择命令按钮,返回一个整数,控制程序的流向。MsgBox过程的作用是弹出MsgBox信息对话框,等待用户选择命令按钮,没有返回值。MsgBox过程后的()应省略不写,否则出现编译错误:缺少“=”。4.2.2MsgBox函数或过程函数格式:变量[%]=MsgBox(提示[,按钮][,标题])过程格式:MsgBox提示[,按钮][,标题]按钮用以确定按钮的类型、显示图标的种类和数目、默认按钮和模式。由四项数值加起来构成。按钮设置分组符号常量值作用按钮类型vbOkOnly0只显示“确定”按钮vbOkCancel1显示“确定”和“取消”按钮vbAbortRetryIgnore2显示“终止”、“重试”和“忽略”按钮vbYesNoCancel3显示“是”、“否”和“取消”按钮vbYesNo4显示“是”和“否”按钮vbRetryCancel5显示“重试”和“取消”按钮图标种类vbCritical16显示关键信息图标,红色[Stop]vbQuestion32显示询问信息图标,[?]vbExclamation48显示警告信息图标,[!]vbInformation64显示信息图标,[i]默认按钮vbDefaultButton10默认第一个按钮为活动按钮vbDefaultButton2256默认第二个按钮为活动按钮vbDefaultButton3512默认第三个按钮为活动按钮vbDefaultButton4768默认第四个按钮为活动按钮模式vbApplicationModal0应用程序挂起,直到回应信息对话框vbSystemModal4096全部应用程序挂起,直到回应信息对话框Msgbox函数的返回值是一个1~7的整数,根据该整数可判断用户点击的是哪个按钮,从而控制程序的走向。操作符号常量值点击“确定”按钮vbOk1点击“取消”按钮vbCancel2点击“终止”按钮vbAbort3点击“重试”按钮vbRetry4点击“忽略”按钮vbIgnore5点击“是”按钮vbYes6点击“否”按钮vbNo7例题4.4设计检验帐号的程序,单击检验帐号命令按钮,进行帐号检验。要求帐号为不超过8位的数字。如果帐号中有非数字字符,就弹出有帐号不正确提示信息的信息对话框。在文本框中输入帐号信息时,用掩盖符“*”进行保密。思路:使用文本框控件输入信息输入的字符不超过8位文本框的MaxLength属性设置为8保密将文本框的PasswordChar属性设置为*属性的设置可以在属性列表框中设置,也可以使用代码设置,使用代码设置时,可在Form_Load事件中设置,这样窗口一弹出,设置的属性已经到位使用IsNumeric()函数检查字符串是否是数字字符PrivateSubForm_Load()‘窗体加载时执行以下代码txtzh.Text=“”‘清空文本框txtzh.MaxLength=8‘设置文本框的最多字符数txtzh.PasswordChar=“*”‘设置掩盖字符EndsubprivateSubCommzh_Click()IfNotIsNumeric(txtzh.Text)Then‘判断文本框中字符是否为数字字符MsgBox“账号不正确”,vbOkCancel+vbExclamation+vbDefaultButton1,“信息提示”‘如果输入的不是数字则弹出对话框提示出错txtzh.Text=“”‘文本框清空txtzh.SetFocus‘文本框获得焦点EndIfEndSub(真题)假定程序中有如下语句:answer=MsgBox(第一个字符串,vbAbortRetryIgnoreOrvbCriticalOrvbDefaultButton3,第二个字符串)执行该语句后,将显示一个信息框,此时如果按回车键,则answer的值为()A)“第二个字符串”B)5C)3D)7B(真题)下列叙述中正确的是()A)MsgBox语句的返回值是一个整数B)执行Msgbox语句并出现信息框后,不用关闭信息框即可执行其他操作C)MsgBox语句的第一个参数不能省略D)如果省加略MsgBox语句的第三个参数(Title),则信息框的标题为空C(真题)在窗体上画一个文本框(名称为text1)和一个标签(名称为label1),程序运行后,在文本框中每输入一个字符,都会立即在标签中显示文本框中字符的个数,以下可以实现实现上述操作的事件过程是()A)PrivateSubText1_Change()Label1.Caption=Str(Len(Text1.Text))EndSubB)PrivateSubText1_Click()Label1.Caption=Str(Len(Text1.Text))EndSubC)PrivateSubText1_Change()Label1.Caption=text1.textEndSubD)PrivateSublabel1_Change()Label1.Caption=Str(Len(Text1.Text))EndSubA4.2.3Print方法格式:[对象.]Print[定位函数][输出表达式列表][分隔符]其中的对象为窗体、图片框、打印机对象。缺省对象表示在当前窗体输出。输出表达式列表是待输出的各项内容。出错指数:4.2.3Print方法分隔符可为逗号或分号:①用逗号时,后面输出项定位在下一个输出区域的开始处,一个输出区为14列。这种格式有时又称分区格式。②用分号时,后面输出项在前一输出项的最后输出字符后,继续输出。这种格式有时又称紧凑格式。③Print后没有分隔符,表示输出后换行;有分隔符表示下一个Print的输出将受这个分隔符影响;Print后没有任何内容,表示输出空行。出错指数:出错指数:定位函数(1)Spc函数格式:Spc(n)功能:在下一个数据之前插入n(0~32767)个空格。如n小于输出行的宽度,则在当前位置输出;如n大于输出行的宽度,则输出位置为当前位置+nMod行宽。Spc()函数调整两个输出项之间的距离。出错指数:定位函数(2)Tab函数格式:Tab[(n)]功能:输出的数据定位到n列指定的位置,如省略n,则在下一行首位置输出;如当前位置大于n,则在下一行的n列输出;如n1,则默认输出位置为1;如n大于行宽则输出位置为nMod行宽。Tab()函数用来定位输出项位置。例如PrintTab(-7);6,Tab(7);7,Tab(4);9则在第1列输出6,下一行第7列输出7,下一行第4列输出9。例题4.6演示定位函数控制的输出格式。PrivateSubForm_Click()PrintTab(1);”100”;Sp