您现在的位置:首页 >> 网络教学 >> 基本控件 >> 内容

VB 程序结构

时间:2009-11-10 9:54:06 点击:6134

计算机程序中各语句执行的顺序关系就决定了程序的基本结构。BASIC语言主要包含三种基本控制结构,即顺序结构程序设计、选择结构程序设计和循环结构程序设计。

1.顺序结构程序设计
  顺序结构程序的执行是从第一个可执行语句开始,一个语句接一个语句地依次执行,直到程序结束语句为止。注意顺序结构程序中的任何一个可执行语句,在程序运行过程中,都必须运行一次,而且也只能运行一次。这样的程序结构最简单、最直观、最易于理解。顺序执行是程序执行的基本规则,除了控制语句(如转向语句、循环语句、条件语句和暂停语句)外,其他的可执行语句都是顺序执行的语句。在进行顺序结构程序设计时,也要结合程序流程图,选择好程序的入口和出口语句,设计好各工作语句的前后顺序。顺序结构如下图所示:

  

Visual Basic程序设计中,顺序结构是一类最简单的结构,这种结构的程序是按从上到下的顺序依次执行语句的,中间既没有调转性的语句,也没有循环语句。

  在顺序程序设计中用到的典型语句是:赋值语句、输入输出语句、以及其他计算语句,如加、减、乘、除算术运算等。下面介绍一个例子,以说明顺序结构程序设计的特点。
  Example:求一元二次方程ax^2+bx+c=0的根。
  (1)运行VB,选择文件菜单上的新建工程选项,新建一个工程。
  (2)在窗体上创建一个命令按钮和三个标签,如下表设置属性:

控件

属性项

属性值

命令按钮

name

cmdCalcu

Caption

计算(&C)

标签1

name

Label1

Caption

ax*x+bx+c=0

Font

大小取12

标签2

name

Label2

Caption

x1=

Font

大小取10

标签3

name

Label3

Caption

x2=

Font

大小取10

  (3)接着编写单击按钮的事件响应函数:双击命令按钮,打开代码窗口,输入程序代码:
  Private Sub cmdCalcu_Click()
  Dim a, b, c As Single
  Dim D As Single
  Dim x1, x2 As Single
  a = 12
  b = 29
  c = 4
  D = b * b - 4 * a * c
  x1 = (-b + Sqr(D)) / (2 * a)
  x2 = (-b - Sqr(D)) / (2 * a)
  Label2.Caption = Label2.Caption & x1
  Label3.Caption = Label3.Caption & x2
  End Sub
  (4)运行程序,在弹出的界面中点击计算按钮,即把方程的根解出来。

2.选择结构程序设计
  选择结构就是在程序运行中对程序的走向进行选择,以便决定执行哪一种操作。进行选择和控制要有专门的语句。最常用的就是IF(条件)语句和CASE(选择)语句。这两个语句都是功能强、格式明确的结构语句,都能进行各种嵌套使用。在学习和使用选择结构时要注意IF语句的多变形式及多重嵌套。这也是初学者最易出差错的地方。选择结构如下图所示:

VB的选择结构通过条件语句(If语句)来实现,它有两种格式, 一是单行结构,一是块结构。

1. 单行结构条件语句
  单行条件语句比较简单,其格式如下:
  If 条件 then部分 [Else else部分]
  该语句的功能是:如果条件True,则执行“then部分,否则执行“else部分

2. 块结构条件语句
  一般格式如下:
    If条件1 Then
    语句块1
    [E1se If 条件2 Then
    语句块2]
    [E1se If 条件3 Then
    语句块3]
    ......
    [E1se
     语句块n]
    End If
  块结构条件语句的功能是:如果条件1”True,则执行语句块1”,否则如果条件2”True,则执行语句块2”……否则执行语句块 n”

VB中,多分支结构程序可通过情况语句,也称Select Case语句或Case语句来实现,它根据一个表达式的值,在一组相互独立的可选语句序列中挑选要执行的语句序列。其功能类似于Fortran语言中的计算转移(Computed GoTo)语句和CPascalAda语言中的Case语句。在情况语句中,有很多成分语句,它是块形条件语句的一种变形。
  情况语句的一般格式为:
    Select Case 测试表达式
    Case 表达式表列1
    [语句块1]
    [Case表达式表列2
    [语句块2]]
    ......
    [Case Else
    [语句块n]]
    End Select

  情况语句以Select Case开头,以End Case结束。其功能是:根据测试表达式的值,从多个语句块中选择符合条件的一个语句块执行。
  说明:

1)情况语句中含有多个参量,其含义分别为:
  测试表达式:可以是数值表达式或字符串表达式,通常为变量或常量;
  语句块1、语句块2……每个语句块由一行或多行合法的Visual Basic语句组成
  表达式表列1、表达式表列2……称为域值,可以是下列形式之一:

  表达式[,表达式]……。例如:
  Case 2,4,6,8
  表达式 To 表达式。例如:
  Case 1 To 5
  ③Is关系运算表达式,使用的运算符包括:
  < <= > >=  <>=
  例如:
  Case Is=12
  表达式表列中的表达式必须与测试表达式的类型相同。

  (2)情况语句的执行过程是:先对测试表达式求值,然后测试该值与哪一个Case子句中的表达式表列相匹配;如果找到了,则执行与该Case语句有关的语句块,并把控制转移到End Select后面的语句;如果没有找到,则执行与Case Else子句有关的语句块,然后把控制转移到End Select后面的语句。例如:
    Sub Form_Click ()
      msg = "Enter data"
      var = InputBox(msg)
      Select Case var
       Case 1
       text1.Text ="1"
       Case 2
       text1.Text ="2"
       Case 3
       text1.Text ="3"
       Case Else
       text1.Text ="Good bye"
       End Select
    End Sub

  (3)使用表达式表列时应注意以下几点:
  关键字To用来指定一个范围,因此必须把较小的值写在前面,较大的值写在后面,字符串常量的范围必须按字母顺序写出。
  例如:
    Case -5 To -1
    Case"dvark" To "kear"
  如果使用关键字Is,则只能用关系运算符。例如:
    Case Is<5
  在Select Case语句中,三种形式可以混用。例如:
  Case Is>Lowerbound,5,6,12,Is 或 Case Is<"HAN","Mao" To "Tao"

  (4Select Case语句与If...Then...Else语句块的功能类似,一般可使用块形式条件语句的地方,也可使用情况语句。
  Select Case语句和块形式的If...Then...Else语句的主要区别是:Select Case语句只对单个表达式求值,并根据求值结果执行不同的语句块;而块形式的条件语句可对不同的表达式求值,因而效率较高。

  (5)如果同一个域值的范围在多个Case子句中出现,则只执行符合要求的第一个Case子句的语句块。

  (6Case Else子句必须放在所有的Case子句之后。如果在Select Case结构中的任何一个Case子句都没有与测试表达式相匹配的值,而且也没有Case Else子句,则不执行任何操作。

  3.循环结构程序设计
  循环结构也有多种形式。无论是由IF语句和GOTO语句构成的循环,还是DOLOOP循环或者FORNEXT循环,都是复合语句的形式,都有自己的控制条件和判别方式。无论使用哪一种循环,都要注意开头与结束语句之间的匹配。每种循环都有各自的循环开始语句和结束循环语句。同时也有相应的EXIT语句可以随时退出循环。

  

 Visual Basic提供多种循环语句以实现循环程序结构。
1
Do While...Loop语句
  Do While...Loop语句可以在程序中实现循环,其格式为:
  Do While<条件表达式>
  <循环体语句>
  [Exit Do]
  Loop

例:do while sum<=1000
  sum=sum*2
  loop

2For...Next 语句
  For-Next循环有一个可当作计数器的变量,因此可用来设置固定的重复次数。其语法结构为:
  For 计数变量=初值 To 终值 [Step 步长值]
  <循环体语句>
  [Exit For]
  Next [计数变量]

  其执行过程是计数变量由初值开始执行循环体,遇到Next语句则将计数变量加上步长值,判断计数变量的值是否已经超过终值,不超过则继续执行循环,否则退出循环,执行Next语句的下一条语句。步长值缺省为1,步长的参数可以是正数和负数。在循环体中可加入Exit For语句强制退出该循环。
  例:for a=2 to 20 step 2
  print a
  next

作者:Admin  
  • 上一篇:标签控件
  • 下一篇:没有了
  • VB程序设计学习网站(赣南师范学院) © 2008 版权所有 All Rights Reserved.
  • 地址:江西省赣州市经济技术开发区 赣南师范学院数学与计算机科学学院 邮政编码:341000
    Email:ZQ188@163.com 技术支持QQ:87319633 移ICP备10086号
  • GnsySjxy! V2.4