发布时间 : 星期三 文章第三章 程序设计基础更新完毕开始阅读
第三章 程序设计基础
本章将介绍Visual Basic中有关基本语句、程序的书写规则、变量、常数、流程控制等基本内容,之所以有编程语言之说,就是因为编程和说话一样,都是用某种语法和词汇对自己想法的表达,程序员掌握的“语法和词汇”越多,就越能够让程序完整顺畅地体现自己的想法。 3.1 赋值语句 =
对象属性或变量 = 表达式
含义:将等号右边表达式的值传送给等号左边的变量或者对象属性 如:form1.caption=”两数相乘” 3.2 程序的书写规则
1. 注释:程序员可以使用注释来说明自己编写某段代码或某个变量的目的,便于阅读理解程序。
格式1:? 注释文字 格式2:Rem 注释文字
说明:注释可以和语句在同一行并写在语句的后面,也可占据一整行。 如:?下面的语句是赋值语句和注释的示例
Form1.width=300 ?将窗体的宽度设置为300
2. 断行:将长语句分成多行。
续行符 “ _”(一个空格紧跟一条下划线)
如:strtemp=”问君归期未有期,”& _ ”巴山夜雨涨秋池。”& _ “何当共剪西窗烛,”& _ “却话巴山夜雨时。”
注意: (1) 在同一行内,续行符后面不能加注释
(2) (3)
3. 将多行语句写在一行上
一行中写下多条语句,可用“:”作为分割符。
如:Form1.width=300:temp=form1.width:form1.caption=”你好!”
3.3 变量
变量是指程序运行中其值可以变化的量。
一、变量的命名规则:
在Visual Basic中命名一个变量要遵循如下的规则,否则系统不能正确的辨识。
⑴ 必须是以字母、汉字开头的字母、汉字、数字、下划线组成的字符串,不能在变量名中出现句点”。”、空格或者嵌入下列
字符:!、#、@、$、%、&。
⑵ 变量名最长为255个字符。
⑶ 大小写字母同等对待,不能使用系统保留字
⑷ 在同一个范围内变量名必须是唯一的。
续行符不应将变量名和属性分割在两行 原则上,续行符应加在运算符的前后
第 1 页 共 26 页
二、变量的声明:
所谓声明一个变量即事先将变量的有关信息通知程序,以便系统可以确定变量的存储格式。在一般的高级语言中,使用变量
必须遵循“先声明,后使用”的原则,但在VB中,变量在使用时不一定 “先声明,后使用”,它有显式声明、隐式声明之分。
隐式声明:即不声明而直接使用,变量以Variant类型处理。
显式声明:情况一 是在程序开头加入 Option Explicit强制显式声明语句; 情况二 是不加强制显式声明语句,对变量声明。
格式: Static|Dim 变量名 [AS 类型] 其中:[AS 类型]表示可缺省,类型为数据类型 Static 定义的变量为静态变量 Dim 定义的变量为一般变量
当执行过程时,用Dim定义的变量初值为0。而用Static定义的变量除第一次调用时初值为0,以后变量不会被初始化。
如: sub form_click() dim temp as integer temp=2 ?显式声明情况二 a=4 ?隐式声明 endsub ?显式声明情况一 option explicit sub form_click() dim a as integer dim b as integer a=4 b=5
end sub
?用Static 声明变量 sub form_click () static a as integer a=a+1 print a end sub
三、变量的数据类型:
VB提供了6类12种标准数据类型,还可以由用户自定义数据类型。我们首先介绍标准数据类型:数值型、字符型、逻辑型、日期型、对象型、变体
1.数值(Numeric)数据类型
整型数、浮点数、货币型数、字节型数
(1)整型数:
是指不带小数点和指数符号的数,整型数运算速度快、精确,但表示数的范围小。 整型Integer(%): 存储长度为2个字节(16位), 数的表示范围是-32768~+32767。
长整数Long(&): 存储长度为 4个字节(32位),范围是-2147483648~2147483647。
第 2 页 共 26 页
(2)浮点数:
浮点数由三部分组成:符号、尾数(Q)以及指数(J),即±QE(或)J。指数分别用“E”表示单精度、“D”表示双精度。浮点数的符号均占1位。
单精度浮点数Single(!):以4字节形式存储(32位),可以精确到7位十进制数,而单精度数的范围如下: 负数的范围是:-3.402823E+38~-1.401298E-45。 正数的范围是:+10401298E-45~+3.402823E+38。
双精度浮点数Double(#):以8字节形式存储(64位)。可以精确到15~16位十进制数。而双精度数的范围如下: 负数的范围是:
-1.797693134862315D+308~-.9406564584112465D-324 正数的范围是:
+4.940656458412465D-324~+1.797693134862315D+308
浮点数表示的数的范围大,但有误差,在做浮点数的运算时,应尽量使每一次运算的结果都在有效位数范围内;尽量不要使两个相差很大的数值直接相加或相减。 (3)货币型数:
Currency(@):是定点数,在内存中存储为 64 位(8个字节)整型的数值形式,其小数点左边有 15 位数字,右边有 4 位数字。
范围: -922,337,203,685,477.5808~ 922,337,203,685,477.5807。
Currency 数据类型在货币计算与定点计算中很有用,因为在这种场合精度特别重要。
(4)字节型数:
Byte:是二进制数。其存储为单精度型、无符号整型、8 位(1个字节)的数值形式,范围在 0 至 255 之间。 Byte 数据类型在存储二进制数据时很有用。 2.字符(String)数据类型
String($):存放字符数据,所谓字符型数据就是用双引号括住的字符串,如:\、\Basic 欢迎你!\等。VB有两种字符串:变长字符串和定长字符串。
在字符串中每个字符占1个字节,字符数据的范围以字符串长度的大小来度量。
变长字符串所占的空间大小为10个字节加字符串,最多可包含大约20 亿(231)个字符; .....
定义格式:DIM 变量名 AS String
如:DIM strtemp AS string 定长字符串所占字节就是字符串的长度,可包含1~大约64K(216)个字符。 .....
定义格式:DIM 变量名 AS String *字符串长度 如:DIM strname AS string *8
3.逻辑(Boolean)数据类型
Boolean: 该类型变量主要用来进行逻辑判断,它的存储位数是16位。 数据只有两个值:True(真)或False(假)。
注意:在VB中,逻辑数据可以转换成整型数据。这时,True转换为-1,False转换为0;而当其他类型的数据转换成逻辑数据时,
非零数转换成True,0转换为False。
4.日期(Date)数据类型
Date: 是用来表示和存储日期和时间的数据,它是按8个字节的浮点数存储。任何字面上可被认作日期和时间的字符(除汉字外),
第 3 页 共 26 页
只要用磅号(#)括起来都可以认作为日期型数据。
如:#1 Jan,97# 、#January 1,1999# 、#1999―8―1 12:30:12PM# 日期表示的范围是:从公元100年1月1日 ~ 9999年12月31日; 时间表示的范围是:从0:00:00 ~ 23:59:59。
注意:当其他数据转换成日期型数据时,小数点左边的数值代表日期,而小数点右边的数值代表时间:0为午夜12点,0.5
为中午12点;负数代表的是1899年12月31日之前的日期和时间。
【例3.1】 下面程序在用户单击窗体后,可显示出由数据转化的日期和时间。 (教材P30例2.1)
5.对象(Object)数据类型
Object: 存储为32位(4个字节)的数值形式,作为对象的引用。利用Set语句,声明为Object的变量可以赋值为任何对象的引用。
如: Sub form_click() Dim Temp AS Object Set Temp =form1 End Sub
6.变体(Variant)数据类型
Variant:也称为万用数据类型,这是一种特殊的数据类型,它对数据的处理(即所需类型)可以根据上下文的变化而变化,除了定长的String数据及用户定义的类型之外,可以处理任何类型的数据而不必进行数据类型的转换。是对所有未定义的变量的缺省数据类型的定义。
Variant类型的数据可以根据运算的实际情况而“变体”, VB提供了一个函数VarType专门用来检测Variant中保存的数据类型,例如:VarType(123)的返回值为2,表示为整型。
VarType函数的返回值与数据类型的关系如表3.1所示。
表3.1 VarType函数数据类型检测
内部常数 vbEmpty vbNull vbInteger vbLong vbSingle vbDouble vbCurrency vbDate vbString vbObject vbError vbBoolean vbVariant vbDataObject vbByte vbArray
3.4 常数
常数是在程序运行中其值不变的量。
Visual Basic中包含三种常量:文字常量、符号常量、系统常量。
第 4 页 共 26 页
VarType 返回值 0 1 2 3 4 5 6 7 8 9 10 11 12 13 17 8192 数据类型 空(Empty) 无效(Null) 整型(Integer) 长整型(Long) 单精度(Single) 双精度型(Double) 货币型(Currency) 日期型(Date) 字符型(String) OLE自动化对象(OLE Automation Object) 错误(Error) 逻辑型(Boolean) 变体数组(Variant) 非OLE自动化对象(Non-OLE Automation Object) 字节型(Byte) 数组(Array)