第6章VB语句1.ppt_第1页
第6章VB语句1.ppt_第2页
第6章VB语句1.ppt_第3页
第6章VB语句1.ppt_第4页
第6章VB语句1.ppt_第5页
已阅读5页,还剩92页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、1,第6章 Visual Basic 6.0程序设计,2,6.1 VB的数据类型及运算符、表达式,6.1.1 VB的数据类型 为了更好地处理各种数据,VB定义了多种数据类型,列于P69表6-1中。 可变类型(Variant):可变类型变量可以接收任何类型的数据。系统会根据赋值情况按相应的数据类型对待。 不同类型的数据所占的存储空间不同,选择合适的数据类型可以优化程序代码。一般只有相同的数据之间才能进行操作,否则可能出现错误。因此在使用变量时一般应声明变量的类型。,3,4,6.1.2 变量的声明,1. 变量的概念 2. 变量的命名规则 变量名的构成可以是字母、数字、下划线,此外要注意以下几点。

2、变量名不能以数字开头。如2C是错误的。 变量名所含的字符个数不超过255个。 变量名不区分字母的大小写,如Sum与sum代表同一变量。 不用VB的保留字做变量名。保留字是指VB中已经定义的词,如标准函数名、方法名、语句、运算符、过程名等。如VB中使用的Print、Sub、Private、Now、Time等不能做变量名。,5,3. 变量的定义(声明),一个变量是什么数据类型,应当告知计算机,以使计算机为其分配相应大小的存储空间。 某种类型的变量,可赋予同类型的数据。 声明变量的语句格式如下: Dim | Static | Public |Globa 变量名 As 类型名 例如: Dim x1 A

3、s Single 将x1声明为单精度型变量 Dim str1 As String 定义变长字符串变量 Dim str2 As String*20 定义定长字符串变量 Dim a 没指定a的类型, 默认是变体(Variant)类型 Public w2 As Integer 将w2声明为全局整型变量,6,如果用逗号分隔,可以在一行中定义多个变量。例如 Dim Sum As Double , aver As Single 变量声明后,数值型变量的初始值是0; 字符型变量的初值是空,即无任何字符; 逻辑型变量的初值是False (假) 。 用Static可定义静态变量: Static c As Int

4、eger 将c声明为静态整型变量 用Dim 定义的变量称为自动(动态)变量.,7,例6-1 以下窗体的单击事件过程,若多次被调用执行,其静态变量n中内容反映了调用的次数,而动态变量m的值则总是1。通过本例,观察静态变量与局部动态变量的区别。 Private Sub Form_Click( ) Static n As Integer n 定义为静态变量 Dim m As Integer m为局部动态变量 n=n+1 m=m+1 Print “n=”;n , “m=”;m Print End Sub,8,4Print的用法,上例中用到了Print输出数据。Print是VB提供的一种方法,可完成在窗

5、体上显示(输出)字符串或表达式的值的操作。 语法格式:对象名. Print 输出项列表 功能:在指定对象上输出数据。 说明: 对象名可以是窗体名(例如Form1)、图片框名(例如Picture1),或打印机(如Printer)。若省略对象名,则默认在当前窗体上输出数据。 “输出项列表”是一个或多个要显示的数据项。输出项可以是数值表达式或字符串。若输出字符串,要用双引号括住字符串;若输出变量中的数值,则变量不应用双引号括住。若输出的是数值表达式,则Print会先计算表达式的值,然后输出;若省略输出项,则输出一空行。,9,例如:Print “欢迎学习 VB。” 输出字符串,显示:欢迎学习 VB。

6、a=6 将数值 6 赋给变量 a Print a 输出变量 a 中的值,显示:6 Print 输出空行 Print 5+10*4 输出表达式的值,显示:45 若输出多项,各输出项之间要用“;”或 “ ,”当分隔符。 “;”表示按紧凑格式输出各项,即两输出项之间无间隔地显示出来; 而用 “,”做分隔符,表示各输出项按分区输出格式显示。VB中规定,一个输出区为14个西文字符的宽度,第一个输出区从窗体左边第一个字符位置开始,而第二个输出区从第15个字符位置开始。逗号后面的输出项在下一个输出区显示。 例如:Form1.Print “a”;“b”, “c” 结果在窗体上显示: ab c,10,例如:Pr

7、int “A=”;1 结果显示: A=1 例如 a=12 b=3 Print “a=”;a, “b=”;b Print “a+b=”;a+b 运行结果: a=12 b=3 a+b=15,11,例: Print “abcd” 没有以分隔符结尾,光标自动换行 Print “xyz”, 以“,”结尾,光标不换行 Print “OPQ” 接着上一行,在下一输出区输出字符串 OPQ 显示结果如下: abcd xyz OPQ,12,6.1.3 常量分类及其声明方法,常量分为两种: 直接常量 , 符号常量 1. 直接常量 直接常量就是在代码中以常数的形式表示的数据,所以也称之为常数。如a=a+3,式中的3就

8、是直接常量。VB中提供了各种类型的直接常量(常数)。 有两种: 字符串 , 数值 (1) 字符串:是用双引号括起来的字符序列,可以是ASCII字符,也可以是中文字符. 例如: ABCDE 程序设计 (空字符串) (2) 数值: 整型、长整型、浮点型、货币型等,13,数值类型 分为整型数和实型.,整型数,实型数 (浮点数),整数 Integer,长整数 Long,例: +4、-10 范围:-32768 32767,例: +412345、-120321,单精度数Single,双精度数 Double,例: 0.0412、-102.3,指数形式: 4.12e-2, -1.023E+2,例: 0.012

9、34、-123.45678,指数形式: 1.234D-2, -1. 2345678d+2,14,整型常量(Integer),整型常量指有符号整数。整型常量可以分为十进制、十六进制和八进制。 十进制整数如 12 、 12345(+号被省略) 、 0等。 十六进制整型数规定以 y End Sub 运行结果: 输入 3 输出 y=45,27,输入框函数 InputBox( ) 功能:键盘输入字符串给变量。该函数的执行,会弹出一个对话框(如图),让用户输入数据。 格式:x= InputBox(prompt$,title$ ,default$ ,x%,y%) 说明: prompt$:是用双引号括起来的字

10、符串,指定输入对话框中显示的提示信息,用来提示用户输入什么数据。 title$:是用双引号括起来的字符串。用来指定显示在输入对话框标题栏中的标题。,28,default$: 指定默认的输入值。该项中的字符串显示在输入框中,若用户没有输入任何值,则该项内容即作为输入值。 ,x%,y%:是对话框左上角的坐标值,用来确定对话框在屏幕上显示的具体位置。 函数返回值:是输入的字符串。若没有输入字符串,则返回Default项中的字符串。 x: 是用户定义的字符串(String)型变量,用于接受函数的返回值(即用户的输入值)。,29,例6-3 在窗体单击(Click)事件过程中输入代码如下: Private

11、 Sub Form_Click( ) Dim a As String a=InputBox(请输入你的地址:, 输入函数练习 , 沈阳市) Print 你的地址是: x ; If x = vbAbort Then Print “你按下了终止按钮。” ElseIf x= vbRetry Then Print “你按下了重试按钮。” ElseIf x= vbIgnore Then Print “你按下了忽略按钮。” End If End Sub 按F5键运行程序,单击窗体,就会弹出MsgBox对话框如图6-4。若在对话框中单击了终止按钮,则在窗体中打印出: x=3 你按下了终止按钮。因为终止按钮对

12、应的函数返回值是3。,图6-4 MgBox对话框,36,例 用MsgBox函数判断是否继续执行. Private Sub Form_Click() msg$ = 请确认此数据是否正确 Title$ = 数据检查对话框 typ = vbYesNoCancel + vbCritical x = MsgBox(msg, typ, Title) If x = vbYes Then Print x=; x ElseIf x = vbNo Then Print x=; x, 数据错误,请从新输入 End If End Sub,37,6.2.2 数学函数,1. Int(x) 功能:得到不超过x的最大整数。x

13、可以是数值表达式,函数值为整型。 例:Int ( 5. 9)的值为 5 Int (-5.9)的值为 -6 , Int(-5.2)的值为 6 2. Abs (x) 功能:得到x的绝对值。x为数值表达式。 例:Abs(-3.5)的值为3.5 y=10 z=Abs( y-15) z得到 5 3. Sqr(x ) 功能:得到x的平方根,要求x=0。 例:x=36 y=Sqr(x) 结果y的值为6,38,5. Sgn(x) 功能:得到参数x的符号。 当x0时,函数值为1, x=0时,函数值为0, x0时,函数值为-1。 例:设 x=8 , y=-10 , z=0 则有:Sgn(x)的值为1, Sgn(y

14、)的值为 -1 Sgn(z)的值为0,练习,39,6. Rnd(x) 功能:得到01之间的随机数。函数值是大于等于0,小于1(即00或不指定x值时,每次产生随机序列中的下一个随机数; 当x0时,每次返回相同的随机数; 当x=0时,得到最近产生的随机数。 例:打印一个随机数: x!=Rnd Print x,40,要得到110之间的整数,可用表达式: Int(10*Rnd+1) 例: y = Int(10*Rnd +1) Print y 例6-5 单击窗体,在窗体上打印100以内的随机整数。 Private Sub Form_Click() y = Int(100*Rnd( )+1) Print

15、y End Sub 运行程序时,每单击一次窗体,会显示一个100以内的随机整数。,41,7. 三角函数 VB提供的三角函数有:正弦函数Sin(x),余弦函数Cos(x),正切函数Tan(x),反正切函数Atn(x)等。 注意: x角度要以弧度表示。 角度转换为弧度的公式: 弧度=度数*3.14159/180,42,6.2.3 字符串处理函数,字符串函数大都后跟类型说明符$,表示函数的值是字符串。但在Visual Basic6.0中,可以有$符,也可以省略$符,函数的功能相同。如 Left$()函数与 Left() 函数功能相同。 1. 删除空格函数 LTrim (x$)、RTrim (x$)、

16、Trim (x$) 功能: Ltrim (x$) 可以去掉x字符串左端的空格部分 Rtrim(x$) 可以去掉x字符串右端的空格部分 Trim(x$)可以去掉x字符串左端和右端的空格部分。,43,例: a$= Good morinig b$=LTrim(a) c$=RTrim(a) Print a;ABC Print b;ABC Print c;ABC 输出结果: Good morinig ABC Good morinig ABC Good morinigABC,44,2. 字符串截取函数,(1). 左部截取 Left(x$,n) 功能:得到x中字符串左边的n个字符。函数返回值是String型

17、。 例:x$ = “abc你们好” y = Left (x,2) Print y 结果显示:ab,45,(2). 中部截取 Mid(x$,m,n) 功能:得到x字符串中左数第m个字符开始的n个字符,n 若省略,默认从第m个字符开始截取到字符串的末尾。 例: x = “abc你们好” 从x中第4个字符开始截取3个字符赋给变量m: m =Mid(x,4,3) Print m 显示m中的内容:你们好,46,(3). 右部截取 Right(x$,n) 功能:得到x中字符串右边的n个字符。 例:x =abc你们好 z =Right(x,3) Print z 结果显示:你们好,47,3.字符串长度测试函数

18、 Len(x$) 功能:得到x字符串的长度(字符个数)。 例:x = abc字符串 s = Len(x ) s的值为6 Print s 也可以测试变量的长度(所占存储空间字节数) 例: Print Len(a%) 显示整型变量长度 2 Print Len(by ; “ z =” ; z 在窗体上打印结果 或: x= 5 If x0 Then y=x z=1 End If Print “y=”;y ; “ z =” ; z,59,2IfThenElse语句,格式: If 条件 Then 语句块 Else 语句块 End If 功能: 若条件为True,则执行Then后边的语句序列1,然后跳出If

19、结构;若条件为False,则执行Else后边的语句序列2,然后跳出If结构.,60,例6-7 以下程序实现:若x的值大于0,则输出y=1,否则输出y= -1。 Private Sub Form_Click( ) Dim x As Integer, y As Integer x=5 If x0 Then y=1 Else y=-1 End If Print “y=”; y End Sub 运行程序,单击窗体,结果显示: y=1,61,3嵌套的If语句,在上述If结构中,如果语句序列1或语句序列2中包含着If结构,则称之为If语句的嵌套。 例6-8 设有如下分段函数: 1 (当 x0) Y= 0

20、(当 x=0) -1 (当 x0) 输入x值, 输出相应的y值.,62,程序如下: Dim x As Single, y As Single x= InputBox(请输入x:) If x=0 Then If x=0 Then y=0 Else y= 1 End If Else y=-1 End If Print x=;x ; y=;y End Sub,63,上例中语句块2本身是一个选择结构,因此这是一个If 嵌套的例子。 实际上语句块1也可以嵌套If 结构。 VB提供了一种专门用于多层嵌套的If语句格式,即 If 条件1 Then 语句块1 ElseIf 条件2 Then 语句块2 Else

21、If 条件3 Then 语句块3 Else 语句块n End If,64,例6-8 也可以编程序如下: Dim x As Single, y As Single x= InputBox(请输入x:) If x0 Then y=1 ElseIf x=0 Then y=0 Else y=-1 End If Print x=;x ; y=;y End Sub,65,6.3.4 多分支选择语句及程序设计,多分支选择语句的功能是根据表达式的值,确定执行下边的某一语句。 格式1:Select Case 表达式 Case 值1 语句序列1 Case 值2 语句序列2 Case Else 语句序列n End

22、Select,66,例:,Private Sub Form_Click() Dim var As Integer var=Val( InputBox(请输入整数) ) 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,运行: 输入2 文本框显示: 2 输入5 文本框显示: Good Bye,67,格式2: Select Case 表达式 Case 值1,值2, 语句序列1 Case 值3 to 值

23、4 语句序列2 Case Is 比较表达式 语句序列3 Case Else 语句序列n End Select,68,例6-9 设有如下分段函数,输入x值,输出相应的y值. 1 (当 x0) Y= 0 (当 x=0) -1 (当 x0 y=1 End Select Print “x=” ; x, “y=”;y End sub,69,说明:,(1) 采用格式1时,当表达式的值等于某个Case 后边的值时,则执行其后的语句序列。 如果表达式的值与Case值没有相等的,则执行Case Else后边的语句序列n 。 (2) 采用格式2时,当表达式的值在某个Case后的值范围内时,则执行其后的语句序列。

24、(3) Is与比较表达式配合可确定数值范围 (如 Is =10),70,例6-10: 分析以下Select语句的执行过程: Private Sub Form_Click( ) Dim x As Integer x = InputBox(输入一正整数:) Select Case x Case 1 To 100 Print 1103 End Select End Sub,运行: 若输入5时,则输出 1103,71,例6-11: 输入一个成绩(分数),输出相应的等级。编程如下: Dim s As single s = Val(InputBox(请输入成绩分数:) If s = 90 Then Msg

25、Box 优秀 ElseIf s = 80 Then MsgBox “良好” ElseIf s = 70 Then MsgBox “中等 ElseIf s = 60 Then MsgBox 及格 Else MsgBox 不及格 End If,运行结果: 输入 88 显示: 良好,72,将前例题用Select Case语句编程如下: Private Sub Form_Click( ) Dim s As single s = Val(InputBox(输入成绩:) Select Case s Case Is = 90 Print 优秀 Case Is = 80 Print 良好 Case Is =

26、70 Print 中等,Case Is = 60 Print 及格 Case Else Print 不及格 End Select End Sub,73,6.3.5 循环语句及循环结构程序设计,1 For Next 语句 格式:For 循环变量 = 初值 To 终值 Step 步长 语句序列(循环体) Next 循环变量 说明: (1) For和Next必须成对出现; (2) For语句中的循环变量与Next语句中的循环变量必须是同一个变量; (3) “ 步长”是指每执行一次循环体语句,循环变量的变化量。若缺省,则默认步长为1,74,例:For n=1 To 50 sum=sum+n Next

27、n 例中循环变量为n,在执行这段循环程序的过程中,n的值在不断地变化。这里,n的初始值是1,终值是50,因省略了Step, 则默认步长为。循环体语句被执行了50次. 上例程序的功能是计算1+2+50的和. (4) 终止循环的条件是“循环变量的值超过终值”,75,请看下面的程序段,分析其执行结果: For i =1 To 10 Step 2 Print i; Next i 运行显示:_ 程序执行完时, i=,1 3 5 7 9,1 3 5,(5) 提前退出循环: 执行语句Exit For For i =1 To 10 Step 2 If i5 Then Exit For Print i; Nex

28、t i 运行显示:_,11,76,2. While Wend语句,格式: While 条件 语句块 Wend 说明: 当条件为True时就执行循环体语句块。 例: 用当循环语句实现1+2+100。编程如下: Dim s As Integer, i As Integer s=0 : i=1 While i=100 s=s+i i=i+1 Wend Print “sum=”;s,s=0 : i=1 For i=1 To 100 s=s+i Next i,77,3. Do循环控制结构,Do-Loop语句 格式: Do While 条件 语句序列 Loop 说明:当条件为True时,循环执行语句序列。

29、直到条件为False时,退出循环。 格式: Do 语句序列 Loop Whlie 条件 说明:先执行一次语句序列,然后测试条件,若为True,则返回Do 语句,再执行语句序列,直到条件为False时退出循环。,78,格式: Do Until 条件 语句序列 Loop 说明:先测试条件,若条件为False,则循环执行语句序列,直到条件为True时,退出循环. 格式:Do 语句序列 Loop Until 条件 说明:先执行一次语句序列,再测试条件,若条件为False,则循环执行语句序列,直到条件为True时退出循环。,79,While语句和Until语句的条件是相反的,如果把While语句的条件取

30、反,可以作Until语句的条件程序举例:,a=15 : b=10 Do While ab Print a+b; a=a-1 Loop 运行结果: 25 24 23 22 21,a=15 : b=10 Do Until Not ab Print a+b a=a-1 Loop 运行结果: 25 24 23 22 21,80,用DoLoop语句实现2100的偶数和,编程如下: Dim s As Integer Dim i As Integer s=0 给存放和的变量赋初值 i=2 给循环变量赋初值 Do While i =100 s = s + i i = i +2 修改循环变量i的值 Loop P

31、rint “sum=”; s,81,Dim s As Integer Dim i As Integer s=0 : i=2 Do Until i100 s=s+i i=i+2 Loop Print sum=;s 注意:可以在DoLoop语句结构中用Exit Do 语句提前退出循环。,82,6.3.6 程序的退出或终止语句,End : 结束VB程序的运行。 Exit For: 强制退出ForNext循环结构,用于提前终止循环。 Exit Do: 强制退出DoLoop循环结构 Exit Function: 强制退出函数过程的运行。 Exit Sub: 强制退出Sub过程的运行。 Unload: 从

32、内存中卸载一个窗体或动态生成的控件,以节约内存。 如:Unload Form1 表示卸载窗体,即与窗体Form1有关的信息被清除出内存。,83,6.4 数 组,6.4.1 数组的声明 1. 一维数组 声明格式: Dim|Static|Public 数组名(下标范围) As 类型名 例如 Dim A(10) As Integer 以上定义A为整型数组,没有指明下标的下界,默认下标从0开始,即元素下标范围:010,因此A数组含有11个元素,每个元素都是整型变量。 如果希望下标从1开始,可以通过Option Base语句来设置,格式如下: Option Base n 其中n指定数组下标的下界,只能是

33、0或1。 例如:Option Base 1 Private Sub Form_Click() Dim b(5) As Integer 包含元素 b(1) b(5) End Sub,84,如果用关键字To则可以根据需要来指定下标的下界。 例如 Dim C(2 To 10) As Integer 该语句定义了一个一维数组C,下标范围:210,数组有9个元素,每个元素都是整型。 2二维数组 二维数组的元素具有两个下标。如: C ( 3 , 4 ) 数组名 行号 列号 二维数组下标的取值方法与一维数组相同。 例如: Dim C(1 To 2, 1 To 3) As Single Dim A( 2,3)

34、 As Integer,85,6.4.2 访问数组元素,1数组元素的赋值 (1)用循环结构为数组赋值 对于一维数组,可用单层循环。例如: For j=1 To 10 A(j)=0 Next j 对于二维数组,一般要用双层循环。例如: For i=0 To 2 For j=0 To 3 B( i ,j)=0 Next j Next i,86,(2)用Array()函数对数组初始化 Array函数可以把一个数据集读入数组。 函数的使用格式: 数组名= Array(元素值列表) Array函数只能对定义为Variant类型的数组初始化。 例如,以下语句可以初始化数组a( )。 Dim a ( ) A

35、s Variant 这里也可以省略() a=Array(5,2,3,4,1) 初始化结果为:a(0)=5, a(1)=2 , a(2)=3 , a(3)=4,a(4)=1,87,Option Base 1 声明数组元素下标的起始值 Private Sub Command1_Click() Static Test Test=Array(One,Two,Three) Print Test(1) Next j For j = 1 To UBound(b) Print b(j); Next j End Sub 运行结果: 1 2 3 4 5 AbcDEF123,89,2. 数组的输入与输出,可以用文本

36、框或InputBox为数组输入值。请看下面代码: Dim a(4) As Integer For j = 1 To 4 a(j) = Val( InputBox(输入整数:) ) 输入值给数组 Next j For j = 1 To 4 Print a( & j & )= & a(j) 输出数组元素值到窗体上 Next j,90,6.5 VB过程的类型及过程的调用,VB应用程序是由“过程”组成的,“过程”是程序中具有相对独立功能的模块,是能够完成一定任务的一组VB语句。 在VB中,根据过程是否有返回值,将过程分为“Sub过程”和“Function过程(函数过程)”两种类型,前者无返回值,后者一般有函数返回值。而Sub过程又可分为事件过程和通用过程。,过程,Sub过程 (无返回值),Function过程 (有返回值),允许无值,事件过程,通用过程,91,6.5.1 事件过程,控件的事件过程: Private Sub 控件名_事件名(形参列表) 过程的头部 语句序列 End Sub 过程的尾部 普通窗体的事件过程: Private Sub Form_事件名(形参列

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论