|
楼主 |
发表于 2009-1-29 22:46
|
显示全部楼层
【2009.1.29】代码起步——关键字(续)
今天一天都在带儿子,因为昨天老婆的腰闪了。哎,好在明天可以回自己家了,真是“归心似箭”啊~
今天是关键字的最后一讲,按照惯例,还是先将该类关键字列举如下:
【程序结构类】
IF...ELSE...END IF:分支判断选择语句;
DO WHILE...LOOP:先判断后执行循环语句;
DO...LOOP WHILE:先执行后判断循环语句;
FOR...NEXT:限定次数循环语句;
GOTO...:无条件转移语句。
今天我想主要谈谈程序结构问题。所谓程序结构,就是指程序代码的执行顺序,按照执行顺序的不同我们将程序结构大致分为以下三类:顺序结构、分支判断选择结构和循环结构。基本上我们目前能接触到的语句结构都离不了这三种类别。
先讲第一类,顺序结构。这类语句是按照程序代码书写的先后顺序一句一句从前往后顺序执行的,这类语句结构是最简单且容易理解的一类。那么如何才算一个完整的语句结束呢?这在不同的编程语言环境中是不尽相同的,比如C语言中以分号作为每个语句的结束标志,而VBA中,则以换行符作为一个语句的结束标志,换句话说,只要在同一行书写,哪怕再多的代码都被看作一条语句来执行。
第二类是分支判断选择结构。这类结构并不像顺序结构那样按顺序逐条执行代码,而需要按照判断语句的结果对各条分支语句进行选择执行,所以需要通过分支判断选择语句,对本结构代码加以控制执行。例如,“IF...ELSE...END IF”,这条语句以“IF”开始,至“END IF”结束,其中在IF所在行书写判断的条件表达式,“IF”和“ELSE”之间书写条件表达式为“真”时执行的代码,“ELSE
”和“END IF”之间书写条件表达式为“假”时执行的代码。实例如下:
IF 条件 THEN
语句1
ELSE
语句2
END IF
在这里实例程序中,就体现了一个典型的分支判断选择结构,程序是这样执行的:当程序执行到IF语句时,系统会计算条件表达式的值,如果该值为“真”(即条件成立),那么就执行语句1,然后结束该IF结构去执行END IF后面的代码;如果该值为“假”(即条件不成立),那么就执行语句2,然后结束该IF结构去执行END IF后面的代码。所以通过这里实例可以看出,在分支判断选择结构中包含的语句不是每一个都被执行到的,其执行与否、何时执行由条件表达式控制。1条IF条件语句可以区分2种情况下的执行代码,那么多于2种情况该怎么办呢?可以通过在IF语句中嵌套IF语句来实现多条件判断执行的效果。实例如下:
IF 条件1 THEN
语句1
ELSE
IF 条件2 THEN
语句2
ELSE
语句3
END IF
END IF
这和EXCEL中的IF函数的嵌套类似。除了IF语句外,该类结构还有一条语句,也可以实现多条件的分支判断选择结构,即:
SELECT CASE 条件
CASE 值1:
语句1
CASE 值2:
语句2
CASE ...
...
ELSE CASE:
语句3
END SELECT
这里通过计算条件表达式的值与各分支语句中的值进行比较来选择具体到哪个分支中执行相应的代码。
第三类是循环结构。和第二类分支结构类似,循环结构也需要通过循环语句来控制程序代码的执行。按照循环条件的位置和计算方法不同,循环语句大致分为如下三种:
DO WHILE...LOOP:先判断后执行循环语句;
DO...LOOP WHILE:先执行后判断循环语句;
FOR...NEXT:限定次数循环语句;
前2类是不限定次数或者在代码执行前无法确切指定循环次数的循环控制语句。实例程序分别为:
DO WHILE 条件
语句1
语句2
LOOP
这类语句先判断条件表达式的值,然后根据该值决定是否进入或继续执行循环体内部的语句1和2。
DO
语句1
语句2
LOOP WHILE 条件
这类语句先执行循环体内部的语句1和2,然后进一步根据条件表达式的值决定是否再次回到DO语句继续执行循环体内的语句。
第3类是限定循环执行次数的循环语句。实例程序为:
FOR 控制变量=1 TO N STEP 步长
语句
NEXT
这里通过每次循环后控制变量的自动增加步长值,然后与最大值N比较,来决定是否继续执行循环体内的语句。
循环语句也是可以嵌套使用的。无论分支结构还是循环结构的控制语句,都会打乱原先执行的语句顺序,从而给理解和维护代码带来困难,因此要恰当利用这些结构控制语句,并加上相关注释,以防代码出现错误或今后理解困难。
还有一条语句,称为无条件转移控制语句,即GOTO 转移地址名称,这条语句可以方便编程人员在无法确知转移条件和难于控制时将程序执行顺序强制转移到指定的地址。由于是无条件转移,这种情况中存在着编程人员的主管随意性,因此必须加上必要的注释,并尽量少用,以避免今后程序理解和维护的困难。
至此,我们已经将VBA代码中常见的关键字都一一讲解完毕了,想必大家今后在看到程序中的那些E文的时候也大致能知道这个属于什么类型的关键字、在这个位置有什么作用了,至于如何才能熟练掌握并运用这些关键字写出自己的代码,则是我们这个教程接下来的章节需要完成的任务,敬请期待《VBA入门指南——代码起步之我的程序》篇。 |
|