VisualBasic基本语句与结构.ppt
《VisualBasic基本语句与结构.ppt》由会员分享,可在线阅读,更多相关《VisualBasic基本语句与结构.ppt(79页珍藏版)》请在装配图网上搜索。
第4章VisualBasic基本语句与结构,赋值语句与注释语句暂停语句与结束语句数据输出Print方法交互函数选择结构循环语句与循环结构GoTo型控制结构上机实验,4.1赋值语句与注释语句,4.1.1语句书写规则在VB中,进行程序的语句输入时,一般情况是一行一句。但VB允许使用复合语句行,即把几个语句(特别是短语句)放在一行中,各语句之间用冒号(:)隔开。一个语句行的长度最多不能超过1023个字符(ASCII码)。在输入过程中,可以通过续行符把程序分别放在几行中。VisualBasic6.0中所使用的续行符是下划线(_)。如果一个语句行的末尾是下划线,则下一行与该行属于同一个语句行。注意:续行符前要求有一个空格。,4.1.2赋值语句,用赋值语句可以把指定的值赋给某个变量或某个带有属性的对象,其一般格式为:Let=其中,“=”被称为“赋值号”(与等号概念不同)。它的功能是:先计算表达式的值,然后把它的值赋给赋值号左边的变量。所以赋值语句含有双重功能,即计算和赋值。为变量或属性的名称,是任何数据类型的表达式,但两者的类型必须相同或兼容,4.1.2赋值语句,例4.1赋值语句示例。本例的前3个赋值语句分别是数值型、字符型和逻辑型,而后3个语句给对象的属性赋值。DimABCAsInteger,StrAsString,LgAsBooleanABC=3456Str=”程序设计”Lg=TrueText1.Text=”欢迎使用”Label1.Caption=Str+Text1.TextForm1.Visible=False,4.1.3注释语句,注释语句用来给程序或语句添加注释,以提高程序的可读性,其格式为:Rem|注释语句可单独占用一行或与语句行同行(即直接在语句的后面)。若在其他语句行后面使用Rem命令,则必须使用冒号(:)与语句隔开;若在其他语句行后使用单引号,不必加冒号。这里特别提醒:单引号是英文情况下的符号,4.2暂停语句与结束语句,4.2.1暂停语句(Stop)Stop语句用来暂停程序的执行,其作用类似执行“运行”/“中断”命令。当执行Stop语句时,将中断程序的运行并自动打开立即窗口。Stop语句的主要作用是把解释程序设置为中断(Break)模式,以便对程序进行检查和调试。一旦VB应用程序通过编译并能运行,则不再需要解释程序的辅助,也不需要进入中断模式。因此,程序调试结束后,生成可执行文件之前,应删去代码中的所有Stop语句。,4.2.2结束语句(End),End语句结束的是一个过程或块。它提供了一种强迫中止程序的方法。End语句可放在程序中的任何位置,执行到End语句时将退出程序。,4.3数据输出Print方法,VisualBasic用Print方法实现数据输出该方法可用于窗体,也可用于其他对象。实际上,用于窗体的方法有的也可以用于其他多种对象。在这一节中,将主要介绍如何在窗体中使用这种方法。,4.3.1Print方法,Print方法可以在窗体上显示文本字符串和表达式的值,并可在其他图形对象或打印机上输出信息。其一般格式为:对象名称.Print表达式表,|;,4.3.1Print方法,(1)“对象名称”可以是窗体(Form)、图片框(PictureBox)或打印机(Printer),也可以是立即窗口(Debug)。如果省略“对象名称”,则在当前窗体上输出(2)“表达式表”是一个或多个表达式,可以是数值表达式或字符串。对于数值表达式,打印出表达式的值;而字符串则照原样输出。如果省略“表达式表”,则输出一个空行。(3)当输出多个表达式或字符串时,各表达式用分隔符(逗号、分号或空格)隔开。如果输出的各表达式之间用逗号分隔,则按标准输出格式(分区输出格式)显示数据项。如果各输出项之间用分号或空格作为分隔符,则按紧凑输出格式输出数据。(4)Print方法具有计算和输出双重功能,对于表达式,它先计算后输出。(5)在一般情况下,每执行一次Print方法要自动换行(6)Print方法在Form_Load事件过程中不起作用。,4.3.2与Print方法有关的函数,1.Tab函数格式:Tab(n)Tab函数把光标移到由参数n指定的列,从这个位置开始输出信息。要输出的内容放在Tab函数的后面,并用分号隔开。(1)参数n为数值表达式,其值为一整数,它是下一个输出位置的列号,表示在输出前把光标(或打印头)移到该列(2)对参数n的取值范围没有具体限制。当n比行宽大时,显示位置为nMod行宽(3)当在第一个Print方法中有多个Tab函数时,每个Tab函数对应一个输出项,各输出项之间用分号隔开。,4.3.2与Print方法有关的函数,例4.2打印如下的人员名册,4.3.2与Print方法有关的函数,例4.2代码:PrivateSubForm_Click()FontName=隶书字体类型为“宋体”FontSize=16字体大小为12FontBold=True字体为粗体Print姓名;Tab(8)Print部门;Tab(16);职务;Tab(16)PrintPrint张三;Tab(8);科研室;Tab(16);科长;Tab(16)Print李四;Tab(8);人力部;Tab(16);部长;Tab(16)EndSub,4.3.2与Print方法有关的函数,2.Spc函数格式:Spc(n)在Print的输出中,用Spc函数可以跳过n个空格。(1)参数n是一个数值表达式,其取值范围为032767的整数。Spc函数与输出项之间用分号隔开(2)Spc函数和Tab函数作用类似,而且可以互相代替。但应注意,Tab函数需要从对象的左端开始计数,而Spc函数只表示两个输出项之间的间隔。,4.3.2与Print方法有关的函数,3.空格函数格式:Space$Space$函数返回n个空格。例如(在“立即”窗口中试验):x$=ab+Space(8)+bc“printx$显示abbc,4.3.3格式输出,用格式输出函数Format$可以使数值或日期按指定的格式输出。一般格式为:Format$(数值表达式,格式字符串)该函数的功能是:按“格式字符串”指定的格式输出“数值表达式”的值。,4.3.3格式输出,用Format$函数可以使数值按“格式字符串”指定格式输出,包括在输出字符串前加$、字符串前或后补充0及加千位分隔符等。,格式说明字符,4.3.4其他方法和属性,1.Cls方法格式:对象.ClsCls清除由Print方法显示的文本或在图片框中显示的图形,并把光标移到对象的左上角(0,0)。这里的“对象”可以是窗体或图片框,如果省略“对象”则清除当前窗体内的显示内容。,4.3.4其他方法和属性,2.Move方法格式:对象.Move左边距离,上边距离,宽度,高度Move方法用来移动窗体和控件,并可改变其大小。其中“对象”可以是窗体及除计时器(Timer)、菜单(Menu)之外的所有控件,如果省略“对象”,则表示要移动的是窗体。“左边距离”,“上边距离”、“宽度”及“高度”均以twip为单位。如果“对象”是窗体,则“左边距离”和“上边距离”均以屏幕左边界和上边界为准;如果“对象”是控件,则以窗体的左边界和上边界为准,4.3.4其他方法和属性,例4.3在窗体的任意位置画一个文本框和一个图片框(大小任意)。编写程序移动它们的位置并改变其大小。,4.3.4其他方法和属性,例4.3代码PrivateSubForm_Click()Move400,500,4000,2000Text1.Move100,200,1000,1500Picture1.Move1200,200,1000,2000Picture1.PrintPicture1EndSub,4.3.4其他方法和属性,3.TextHeight和TextWidth方法格式:对象.TextHeight(字符串)对象.TextWidth(字符串)这两个方法用来辅助设置坐标。其中TextHeight方法返回一个文本字符串的高度值,而TextWidth方法则返回一个文本字符串的宽度值,它们的单位均为twip。当字符串的字形和大小不同时,所返回的值也不一样。“对象”包括窗体和图片框,如果省略“对象”,则用来测试当前窗体中的字符串。,4.3.4其他方法和属性,例4.4编写程序,试验TextHeight方法。PrivateSubForm_Click()PrintVisualBasicCurrentY=TextHeight(Visual)*8下一个输出位置的Y坐标CurrentX=0下一个输出位置的X坐标PrintVisualBasicPrintText$=VBPrintText$PrintTextHeight(Text$),TextWidth(Text$)FontSize=16设置字体大小PrintPrintText$PrintTextHeight(Text$),TextWidth(Text$)EndSub,4.3.4其他方法和属性,例4.5编写程序,使字符串居中显示。PrivateSubForm_Click()FontSize=24Sample$=VisualBasic程序设计x=(ScaleWidth-TextWidth(Sample$)/2y=(ScaleHeight-TextHeight(Sample$)/2CurrentX=xCurrentY=yPrintSample$EndSub,4.4交互函数,4.4.1InputBox函数InputBox函数可以产生一个对话框,作为输入数据的界面,等待用户输入数据,并返回所输入的内容。其格式为:InputBox(prompt,title,default,xpos,ypos,helpfile,context),4.4.1InputBox函数,该函数有7个参数,其含义如下:(1)prompt:是一个字符串,其长度不得超过1024个字符,它是在对话框内显示的信息,用来提示用户输入。(2)title:字符串,它是对话框的标题,显示在对话框顶部的标题区。(3)default:字符串,用来显示输入缓冲区的默认信息。(4)xpos,ypos:是两个整数值,分别用来确定对话框与屏幕左边的距离(xpos)和上边的距离(ypos),它们的单位均为twip。这两个参数必须全部给出,或者全部省略。如果省略这一对位置参数,则对话框显示在屏幕中心线向下约三分之一处。(5)helpfile,context:helpfile是一个字符串变量或字符串表达式,用来表示帮助文件的名字;context是一个数值变量或表达式,用来表示相关帮助主题的帮助目录号。这两个参数必须同时提供或同时省略。,4.4.1InputBox函数,在使用InputBox函数时,应注意以下几点。(1)执行InputBox函数后,产生一个对话框,提示用户输入数据,光标位于对话框底部的输入区中。(2)在默认情况下,InputBox的返回值是一个字符串(不是变体类型)。(3)在执行InputBox函数所产生的对话框中,有两个按钮,一个是“确定”,另一个是“取消”。在输入区输入数据后,单击“确定”按钮(或按回车键)表示确认,并返回在输入区中输入的数据;而如果单击“取消”按钮(或按Esc键),则使当前的输入作废,在这种情况下,将返回一个空字符串。(4)每执行一次InputBox函数只能输入一个值,如果需要输入多个值,则必须多次调用InputBox函数。(5)和其他返回字符串的函数一样,InputBox函数也可以写成InputBox$的形式,这两种形式完全等价。,4.4.1InputBox函数,例4.6编写程序,用InputBox函数输入数据。PrivateSubForm_Click()m1$=请输入姓名:mtitle$=员工简历m2$=请输入年龄:m3$=请输入性别:m4$=请输入籍贯:workername$=InputBox(m1$,mtitle$)workerage=InputBox(m2$,mtitle$)workersex$=InputBox(m3$,mtitle$)workerhome$=InputBox(m4$,mtitle$)ClsPrintworkername$;,;workerhome$;,今年Printworkerage;岁;,;workerhome$;人EndSub,4.4.2MsgBox函数和MsgBox语句,在使用Windows时,如果操作有误,屏幕上会显示一个对话框,让用户进行选择,然后根据选择确定其后的操作。MsgBox函数的功能与此类似,它可以向用户传送信息,并可通过用户在对话框上的选择接收用户所做的响应,作为程序继续执行的依据。,4.4.2MsgBox函数和MsgBox语句,MsgBox函数的格式如下:MsgBox(msg,type,title,helpfile,context)该函数有5个参数,除第一个参数外,其余参数都是可选的。各参数的含义如下:(1)msg:是一个字符串,其长度不能超过1024个字符,如果超过,则多余的字符被截掉。该字符串的内容将在由MsgBox函数产生的对话框内显示。当字符串在一行内显示不完时,将自动换行,当然也可以用“Chr$(13)+Chr$(10)”强制换行。(2)type:是一个整数制或符号常量,用来控制在对话框内显示的按钮、图标的种类及数量。该参数的值由4类数值相加产生,这4类数值或符号常量分别表示按钮的类型、显示图标的种类、活动按钮的位置及强制返回(3)title:是一个字符串,用来显示对话框的标题。(4)helpfile,context:同InputBox函数。,4.4.2MsgBox函数和MsgBox语句,MsgBox的Type参数取值,4.4.2MsgBox函数和MsgBox语句,MsgBox函数的返回值,4.4.2MsgBox函数和MsgBox语句,例4.7编写程序,试验MsgBox函数的功能。PrivateSubForm_Click()m1$=Errorencounteredwhiletryingtoopenfile,pleaseretry.m2$=TextEditorr=MsgBox(m1$,290,m2$)PrintrEndSub,4.5选择结构,在许多情况下,人们希望程序语句执行的顺序依赖于输入数据或中间运算的结果。这时需要对某个变量或表达式的值进行判定,以决定执行哪些语句和跳过哪些语句不执行,我们称这种程序结构为选择结构(或分支结构)。,4.5.1单行结构条件语句,1单行形式的IfThen用途:通过对条件的判断有选择的执行一条语句语法:If条件Then语句条件:是供判断的关系表达式或逻辑表达式语句:是条件成立的时候要执行的语句,4.5.1单行结构条件语句,例4.8:找出用户输入的两个数的大数PrivateSubCommand1_Click()DimAAsInteger,BAsIntegerDimMaxAsIntegerA=Int(InputBox(请输入第一个整数,输入,3)B=Int(InputBox(第输入第二个整数,输入,6)Max=AIfMaxBThenMax=BMsgBoxStr(A)+与+Str(B)+之中的大数为+vbCrLf+Str(Max)EndSub,4.5.1单行结构条件语句,2单行形式的IfThenElse用途:根据条件是否成立从两条语句中选择一条执行语法:If条件Then语句1Else语句2说明:VisualBasic在遇到IfThenElse语句时首先计算出条件的逻辑值若为True(即条件成立),则执行语句1若为False(即条件不成立),则执行语句2,4.5.1单行结构条件语句,例4.9:验证用户输入的整数的奇偶性PrivateSubcmd1_Click()Dimint1AsInteger,int2AsIntegerint1=CInt(txtInput.Text)int2=int1Mod2Ifint2=0ThenMsgBox是一个偶数_ElseMsgBox是一个奇数EndSub,4.5.2块结构条件语句,1多行形式的IfThenEndIF用途:多行形式的IfThenEndIF可用来判断单一条件来执行一组语句语法:If条件Then语句组EndIF说明:这是IfThen语句的多行形式,使用这种形式的选择结构,在条件成立时要执行的语句不再直接跟在Then后面,而是另外自成一个语句块,并且在最后一定要加上EndIF。,4.5.2块结构条件语句,例4.10:三数排序,构造如图的界面,用户在3个文本框中输入3个数,单击按钮完成从大到小的排序,把结构显示在第4个文本框中。解析:这是一个简单的排序程序,也是排序算法中选择排序的雏形。通过两次判断,把最大的数放在第一位,再经过一次判断把第二大的数放在第二位,这样对于3个数,就完成了从大到小的排序。,4.5.2块结构条件语句,例4.10代码PrivateSubCommand1_Click()DimAAsSingle,BAsSingle,CAsSingleDimDAsSingle中间变量A=Val(Text1.Text):B=Val(Text2.Text):C=Val(Text3.Text)IfABThenD=A:A=B:B=DEndIfIfA=90ThenMsgBox优秀ElseIfsngFen=80ThenMsgBox良好ElseIfsngFen=70ThenMsgBox中等ElseIfsngFen=60ThenMsgBox及格ElseIfsngFen=30ThenMsgBox补考ElseMsgBox重修EndIfEndSub,4.5.3IIf函数,用途:作为函数,根据测试表达式得到的逻辑值,从两个表达式选择一个作为返回值,其用途类似于IfThenElse语句,只不过IIf函数是一个用来返回值的选择结构。语法:IIf(测试表达式,True部分,False部分)说明:测试表达式是一个逻辑表达式,True部分与False部分可以是一个表达式或变量与常量。,4.5.4多分支选择控制结构(SelectCase),用途:虽然IfThenElseIF可以用来判断多重条件的情况,但有时条件太多,程序会变得不易阅读,为此VisualBasic提供了SelectCase语句,使用SelectCase语句可以使程序写起来较为简洁,不但容易阅读,执行起来也较有效率。语法:SelectCase测试表达式Case测试结果1语句组1Case测试结果2语句组2Case测试结果n-1语句组n-1CaseElse语句组nEndSelect,4.5.4多分支选择控制结构(SelectCase),说明:1)VisualBasic遇到SelectCase时,首先计算出测试表达式的值,如果该测试表达式值满足Case后任何一个测试结果,则对应的语句组会被执行,如果都不满足,则执行CaseElse后的语句组。2)测试结果可以是以下三者之一:一般表达式或常量、变量范围表达式:expressionToexpression比较表达式:Is比较运算符表达式,4.5.4多分支选择控制结构(SelectCase),例4.13:判断用户输入的整数除以3以后的结果:PrivateSubCommand1_Click()DimxAsIntegerx=Val(InputBox(请输入一个正整数,输入,32)SelectCasexMod3Case0MsgBoxStr(x)+整除3Case1MsgBoxStr(x)+除以3余1Case2MsgBoxStr(x)+除以3余2EndSelectEndSub,4.6循环控制结构,在实际应用中,经常遇到一些操作并不复杂,但需要反复多次处理的问题,比如要计算1+2+3+10000,直接把这个求和的表达式用手工输入显示是不现实的。循环结构可以帮助我们有效的解决这一类问题,利用循环结构,只需要编写少量的语句就可以让计算机重复执行许多次,从而完成大量类同计算的需求。VisualBasic提供了3种循环控制方式:ForNextDoLoopWhileWend,4.6.1ForNext循环,用途:For循环通常用于将某一程序段重复执行、且重复次数是固定的场合。For循环的重复次数可以由一个计数变量的上、下限来决定。语法:For计数器=初值To终值Step增量循环体Next计数器,4.6.1ForNext循环,说明:For循环执行步骤如下:1将计数器设定为初值。2若增量为正、则判断计数器的值是否小于终值;若增量为负,则判断计数器的值是否大于终值。3若上述判断值为True,则执行循环体中的语句,否则跳出循环。4到Next语句,将计数器加上增量5重复步骤2至4,4.6.1ForNext循环,例4.14:求S=1+2+3+N,其中,N由用户输入PrivateSubCommand1_Click()DimNAsInteger,IAsInteger,SAsLongN=Int(InputBox(“N=”)ForI=1ToNS=S+INextIPrintS=;SEndSub,4.6.1ForNext循环,可以注意到,对于需要将某些语句执行固定次数的循环,使用ForNext循环非常方便。而For循环的次数是由循环的初值、终值和步长3个因素确定,计算公式为:循环次数=Int(终值-初值)/步长)+1一般情况下,ForNext循环需要正常结束,即循环变量到达终值。但在某些情况下,可能在循环变量到达终值前需要退出循环,这可通过ExitFor语句来实现。,4.6.1ForNext循环,例4.15:判断用户输入的自然数是否为质数。解析:1.若自然数除了1和本身外没有其他因数则该数为质数,否则为合数2.以程序判断自然数N是否为质数,可以用自2至N-1循环查找N的因数,如果没有N的因数,则N为质数;如果找到一个因数,可以退出循环得到N是合数的结论。3.根据自然数的性质:若N有因数qN则必有因数p=0.00001T=T+1A=1/TS=S+ALoopMsgBox“S=”&Format(S)EndSub,4.6.2DoLoop循环,例4.17解法2:PrivateSubCommand1_Click()DimSAsSingleDimAAsSingleDimTAsLongT=1A=1S=1DoUntilA=0.000001Pi=4*SMsgBox“=”&Format(Pi)EndSub,4.6.2DoLoop循环,3.无条件的DoLoop循环用途:当程序中可能需要无穷循环时,可使用无条件的DoLoop循环语法:Do循环体Loop说明:使用此种循环可能使程序产生无穷循环,为了避免这种情况的发生,通常在循环体中要有条件语句,以在适当的时候使用ExitDo语句退出循环。,4.6.3WhileWend循环,用途:WhileWend循环与条件前置的DoWhileLoop循环相似,要先判断条件以决定是否执行循环体。语法:While条件循环体Wend说明:先判断条件是否成立,当条件为True时执行反复执行循环体,直到条件为False时为止。WhileWend语句是早期Basic语言的循环语句,现在它的功能已完全被Do.Loop语句所包括,所以不常使用了。,4.6.4多重循环,通常把循环体内不含有循环语句的循环叫做单层循环,而把循环体内含有循环语句的循环称为多重循环。例如在循环体内含有一个循环语句的循环称为二重循环。多重循环又称作多层循环或循环嵌套。,4.6.4多重循环,例4.19打印“九九乘法表”,输出结构如图所示,4.6.4多重循环,解析:九九乘法表是一个9行9列的二维表,行和列都要变化且行列相互约束(第I行需要有I列),是一个典型的二重循环问题PrivateSubForm_Load()ShowDimIAsInteger,JAsIntegerForI=1To9ForJ=1ToIPrintFormat(I)NextJPrint:PrintNextIEndSub,4.7Goto型控制结构,4.7.1GoTo语句用途:在一个过程中改变语句的执行顺序,跳过部分代码去执行另一部分或返回已经执行过的某语句使之重复执行。语法:GoTo标号|行号说明:1)GoTo语句改变程序执行的顺序,无条件的把控制转移到“标号”或“行号”所在的程序行,并从该行开始向下执行。2)标号的命名与变量类似,但是必须以冒号结束;行号则是由数字指定,后面不跟冒号。3)GoTo语句的功能被限定在一个过程中,不能将控制跳转到另一个过程中,4.7.2OnGoTo语句,用途:在使用GoTo型控制时要实现类似于SelectCase的功能,实现多分支选择控制,就要用到OnGoTo型控制语法:On数值表达式GoTo行号列表|标号列表说明:VisualBasic在遇到OnGoTo语句时,先计算数值表达式的值,并将其四舍五入得到一个整数,根据这个整数值决定跳到第几个行号或标号处执行:1)若该整数值为1则转向第一个行号或标号处执行语句,若值为2则转向第二个行号或标呈处执行语句并依此类推2)若该整数值为0或大于“行号列表”或“标号列表”中的项数,程序自动跳转到OnGoTo语句后面的一个可执行语句3)若该整数值为负数,会产生一个运行期错误,4.8上机实验,实验内容在文本框中输入一段文字,能够对其中的单词数、字母数、数字字符及其他字符数进行统计,通过对两个“统计”按钮的单击,分别对单词个数和字符个数进行统计,运行界面如图所示。,- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- VisualBasic 基本 语句 结构
装配图网所有资源均是用户自行上传分享,仅供网友学习交流,未经上传用户书面授权,请勿作他用。
关于本文
相关资源
更多
相关搜索