第5章 程序的基本控制结构 从前面几章的学习中,知道了Visual Basic是一种面向对象的程序设计语言。而对于具体的过程本身,仍然要用到结构化程序设计的方法与结构化程序设计的三种结构,即顺序结构、选择结构和循环结构。这些结构是程序设计的基础,由这三种基本结构可以派生出多样、复杂的“多分支结构”,用其解决各种问题。 本章将逐一介绍顺序结构的基本语句,选择结构、多分支结构及循环结构语句。熟练掌握这些结构语句,就可以编写较为复杂的程序了。
5.1 顺序结构程序设计 所谓顺序结构,就是按照语句的书写顺序依次执行。一般的程序设计语言中,顺序结构的语句主要是赋值语句、输入/输出语句等。在Visual Basic中也有赋值语句,而输入/输出可以通过文本框控件、标签控件、InputBox函数、MsgBox函数等来实现。下面介绍几种基本顺序结构的语句和方法。
5.1.1 赋值语句 赋值语句是任何程序设计语言中的最基本的语句。形式如下: 变量名=表达式 或 对象名.属性=表达式
5.1.2 输入输出数据 除界面外,一个计算机程序通常可分为3部分,即输入、处理和输出。本书第四章中介绍了Visual Basic输入和输出丰富的内容和形式,提供了多种手段,并可通过各种控件实现输入输出操作,使输入输出灵活多样、方便直观。(具体内容请参照本书)
5.2 选择结构程序设计 顺序结构是结构化程序设计中最简单也是最常用的流程控制语句,只能解决流水作业问题。在日常生活中,常常需要对给定的条件进行分析、比较和判断,并根据结果采取不同的操作。在Visual Basic中,这样的问题通过选择结构来解决。选择结构的语句包括If语句和Select Case语句。
5.2.1 行IF语句 单行条件语句比较简单,其格式如下: If 条件 Then语句1 [Else 语句2]
5.2.2 块 IF 语句 因为单行IF语句后不能写多条语句(实际上,用“:”号分割,也可以写多条语句,但通常不这么做),所以有时满足不了程序的需求。(具体内容请参照本书)
5.2.3 IF 语句的嵌套 条件语句中的“Then 语句块”和“Else 语句块”都可以是条件语句,即条件语句可以嵌套,其深度(嵌套层数)没有具体规定,但受到每行字数(1024)的限制。当嵌套层数较多时,应注意嵌套的正确性,一般原则是:每一个“Else 语句块”部分与它前面的、且未曾配对的“If……Then”配对。
5.2.4 Select Case 语句 在有些情况下,对某个条件判断后可能会出现多种取值的情况,此时不适合再使用If语句结构,例如例5.4。在Visual Basic中,专门为此种情况设计了一个Select Case语句结构。在这种结构中,只有一个用于判断的表达式,根据此表达式的不同计算结果,执行不同的语句体部分。这种结构本质上是If嵌套结构的一种变形,主要差别在于:If嵌套结构可以对多个表达式的结果进行判断,从而执行不同的操作;而Select Case结构则只能对一个表达式的结果进行判断,然后再执行不同的操作。
5.2.5 应用案例1——密码登陆 (具体内容请参照本书)
5.2.6 应用案例2——用户注册 (具体内容请参照本书)
5.3 循环结构程序设计 循环结构也称重复结构。在程序处理中,经常需要重复执行某一条语句或某一组程序代码,以最终完成某项任务,使用循环可以简化程序,循环处理需要考虑循环对象和循环控制条件。Visual Basic循环语句有For、While和Do三种基本循环结构。
5.3.1 For 循环语句 For循环属于计数型循环,程序按照此种结构中指明的循环次数来执行循环体部分。For循环格式如下: For 循环变量 = 初始值 To 终值 [Step 步长] [循环体] [Exit For] Next 循环变量
5.3.2 While 循环语句 While循环用于对条件进行判断,如果条件为真,可以循环执行循环体,直到条件为假,循环结束为止。与For循环最大的差别在于:For循环用于循环次数已知的情况,执行一定次数后即可结束循环;而While循环用于不知道循环次数,但可以用一个条件来进行判断是否结束。所以对于循环次数有限,可以用一个条件限制的情况,使用While循环较好,使用比较灵活。
5.3.3 Do 循环语句 Do循环也是根据某个条件是否成立来决定能否执行相应的循环体部分,与While循环不同的是:While循环只能在初始位置检查条件是否成立,若成立,进入循环体;不成立,不进入循环体,执行循环体后的语句。而Do循环可以有两种格式,既可以在初始位置检验条件是否成立,也可以在执行一遍循环体后的结束位置判断条件是否成立,能否进入下一次循环。(具体内容请参照本书)
5.3.4多重循环 For循环、While循环和Do循环都允许嵌套,可以嵌套多层,遵循就近配对原则。
5.3.5应用案例1——色彩变幻的背景 (具体内容请参照本书)
5.3.6 应用案例2——列表框购物程序 (具体内容请参照本书)
5.4 控制语句 Visual Basic 中除了上面介绍的语句以外,还有一些控制语句,例如惹人争议的GoTo语句、退出循环的ExitDo语句、结束程序运行的End语句等。
5.4.1 GoTo 语句 GoTo语句可以改变程序执行的顺序,跳过程序的某一部分去执行另一部分,或者返回已执行过的某语句使之重复执行。在BASIC发展史上该语句的诞生,曾经引起很多人的争议,因为它破坏了程序良好的结构。但实际上其存在也有自己的理由,在编程时有时使用该语句,可以简化程序。由于GoTo可以让程序流程转移,所以用GoTo语句也可以完成循环操作。 GoTo语句的一般格式为: GoTo 标号|行号
5.4.2 Exit Do语句 Exit Do:用于中途跳出Do循环,既可以直接使用,也可以用条件判断语句限制使用。 在满足某个条件时才能执行此语句,跳出Do循环。例如:在Do循环内部添加语句“If 条件 Then Exit Do”。
5.4.3 End 语句 End语句终止一个过程或程序。End配合过程或程序使用,其使用语法如下: End