vb的控制结构有哪些
发布网友
发布时间:2022-04-26 10:47
我来回答
共1个回答
热心网友
时间:2022-06-27 13:08
控制计算机程序执行流程的结构只有三种,即顺序结构、选择结构、循环结构。
(1) 首先说顺序结构,主要是赋值语句和数据的输入输出。
赋值语句中值得注意的是赋值语句要求右端表达式的计算结果的数据类型与左端变量的数据类型要一致。
数据的输出有三种方法,可以使用控件输出,如Label、Text等,也可以使用Print方法在窗体、立即窗口、图片框等对象中打印显示,<对象名称>.Print <表达式列表>[,/;],如果省略了对象名称则默认在当前窗体上打印,如果省略了,/;则输出一空行,因此输出多个表达式时要用,/;隔开,Print还与Tab(n)、Spc(n)连用以便对输出结果定位。还可以使用MsgBox函数实现人机交互,如果要求有返回值时:x=MsgBox(提示信息,对话框类型,对话框标题),如果不要求返回值则:MsgBox提示信息,对话框类型,对话框标题。还有一点值得注意的是在form-load事件中show与print必须同时使用。
数据的输入主要有两种方法,与数据的输出类似,可以使用控件输入,如Text、ListBox等,也可以使用内部函数:x=inputbox(提示内容,对话框标题,默认值)。关于焦点的获得可以通过tab或tab+shift在各对象之间切换(程序运行时),也可以用setfocus方法获得。tab键的顺序可以通过设置控件的tabindex属性进行改变。卸载对象的语句有unload 对象名、end 。它们的共同点是都用于结束程序的执行,但是不同点是当有多个窗体时,unload可以选择卸载的对象,而end则会强制终止所有程序的执行,并清除所有变量。
(2)选择结构也称之为分支结构,有两种基本语句,即if语句和select case语句
if语句可以分为五种具体类型:1.单行条件语句 if...then...else...(不能回车)2.块结构条件语句 if...then <语句块1> else <语句块2> end if 3.条件语句嵌套 if...then...if...then...else...end if...end if 4.elseif格式的语句嵌套if...then...elseif...then...elseif...then...else...end if 5.iif函数:iif(条件表达式,条件为真时的值,条件为假时的值)这个函数与if语句中比较简单的逻辑判断是类似的。
select case语句可以实现多分支选择,在数据类型相同的情况下select case语句显得比if语句简明易读而且效率高,但是在数据类型不同的情况下就只能用if语句了,比如说年龄在35~40之间的男的工程师工资上调,select case语句就不能解决了。
(3)循环结构语句有:for...next、do...loop、for each...next和while...wend,但是常用的是前两个。
do...loop语句分为前判断条件型和后判断条件型,前判断型有可能不执行程序,但是后判断型至少执行一次程序。条件的判断分为while当型循环(条件为真时执行循环体)和until直到型循环(条件为假时执行循环体),使用exit do语句可以随时退出循环体。
for...next语句是针对已知循环次数的问题,如果知道循环次数的一般用For循环,当然也可以用Do……Loop语句,但是相比较,For循环一是看着比较直观,二是运算效率高,而用Do……Loop语句还要经过自己推敲一些累加表达式,才能达到For循环的效果,但是就运算效率而言还是没有For循环快,但是Do……Loop语句也有它的优点,当不知道循环次数的时候,只能用Do……Loop语句
End Sub这个程序就只能用Do……Loop语句。而for虽然没有Do……Loop语句使用的范围广但是它的效率比Do……Loop语句的高。
Do……Loop语句,应该注意要在循环体内写入必要的累加语句,不然会出现死循环
经过比较For循环和Do……Loop语句,If的嵌套格式和Sclect Sase我发现使用范围小的功能越高,使用范围广的功能多的运行起来效率就低,就像数据类型,取值范围大了它占得内存就大,运算效率就低,所以选择合适的语句对程序的运行效率很重要。
for each...next循环与for...next循环类似,主要应用于数组,值得注意的是数组成员通常不定义类型,即默认为variant型。循环次数由数组中的成员个数决定。