第 三 讲
基本课题:基本数据类型、常量与变量
授课日期 |
2004.9.8 |
2004.9.8 |
授课班级 |
03级计算机5、6班 |
03级计算机7、8班 |
教 学 目 的 与 要 求:
本讲主要介绍VB编程语言的基本知识,通过学习要求同学们掌握编写程序的常用规则和良好的编程习惯,掌握如何使用常量和变量。
教 学 的 重 点、难 点:
重点和难点:书写规则、基本数据类型、常量和变量
对 教 材 的 处 理 和 意 见:
以教材为主,联系实际情况及时做补充及适当调整内容顺序。
§2VB 程序设计基础
2.1 基本数据类型、常量与变量
2.1.1 VB 6.0 的基本数据类型
数据类型 |
类型名称 |
声明字符 |
所占字符(B) |
有效值 |
字节型 |
Byte |
|
1 |
0-255 |
布尔型 |
Boolean |
|
2 |
True或False |
整型 |
Integer |
% |
2 |
-32768~32767 、&H0~&HFFFF、&O0~&O177777 |
长整型 |
Long |
& |
4 |
-2147483648~2147483647,小数部分四舍五入 |
单精度型 |
Single |
! |
4 |
负数:-3.402823E38~-1.40298E-45
正数:1.401298E-45~3.402823E38 |
双精度型 |
Double |
# |
8 |
负数:正数: |
货币型 |
Currency |
@ |
8 |
-922337203685477.5808~922337203685477.5807 |
日期型 |
Date |
|
8 |
January 1 100~December 31 9999 |
变长字符串型 |
String |
$ |
字符串长度 |
0~大约20亿字节 |
定长字符串型 |
String*size |
|
size |
1~65535(64KB) |
对象型 |
Object |
|
4 |
任何对象的引用 |
变体型(数值) |
Variant |
|
16 |
任何数值,最大可达Double的范围 |
变体型(字符) |
Variant |
|
字符串长度 |
与可变长度字符串有相同的范围 |
数据类型的说明
1. 保存数值的数据类型
用于保存数值的数据类型主要有Byte、Integer、Long、Single、Double、Currency等6种
Integer运算速度快,占用内存少
Currency支持小数点左边15位右边4位的货币精确计算
Single比Double运算速度快
Byte用于保存2进制数据
2. Boolean类型
变量值为True/False、On/Off、Yes/No
Boolean的缺省值为False
Boolean型可以与Integer或Long型相互转换
?Boolean à Integer/Long时
True à -1False à 0
? Integer/Long à Boolean时
0àFalse非零数值 à True
3. String类型
String类型由各种ASCII字符和汉字组成,用于存储字符串。
在VB中,一个字符串需要用双引号括起来,其中一个西文字符占一个字节,一个汉字或全角字符占两个字节。长度为0的字符串称为空字符串。
如:dim a as string
s=”Database”
s=Left(s,4)
(1)变长字符串
定义:指字符串的长度是不固定的,随着对字符串变量赋予新的字符串,它的长度可增可减。按照缺省规定,一个字符串如没有定义成固定长的,都属于可变长字符串,例如:
“Welcome to Visual Basic”“好运常相伴” “ABCDEF”
(2)定长字符串
定义:定长字符串是指在程序执行过程中,始终保持其长度不变的字符串。
例如:声明一个长度为10个字符的字符串变量后,如果赋予字符串的字符少于10个,则用空格将不足部分填满;如果赋予字符串的长度超过10个,则截去超出部分的字符。
4. Date类型
作用:Date数据类型用于保存日期型数据,其存储为64位浮点数格式
日期范围:公元100年1月1日~9999年12月31日
时间范围:0:00:00~23:59:59
在VB中,Date数据必须用【#】括起来,其标准格式有3种:
#月/日/年#
#时:分:秒 AM或PM#
#月/日/年 时:分:秒 AM或PM #
例:#09/10/2000##2000-09-10##09/10/2000 08:10:38 AM#
注意:当把数值数据转换为Date类型或存储到Date类型的变量时,小数点左边的值表示Date信息,小数点右边的值则代表Time信息。午夜为0,正午为0.5,而负数则表示公元1899年12月31日之前的Date。
5. Object型
说明:Object型变量采用32位(4个字节)地址来存储对象,该地址可引用应用程序中或某些其他应用程序中的对象。可以随后用Set语句指定一个被声明为Object的变量来引用应用程序所识别的任何实际对象,
如:dim objdb as object
set objdb = opendatabase(“c:\vb6\biblio.mdb”) ‘指定objdb为数据库对象
6. Variant类型
Variant类型可以存放任意类型的数据,对Variant变量赋值时不需要进行类型间的任何转换。
当定义一个变量而没有说明变量的数据类型时,该变量默认为Variant型。
如:somevalue = “17”‘somevalue包含“17”(双字符的串),字符型
somevalue = somevalue – 8‘现在somevalue包含数值9,数值型
somevalue= “U” & somevalue‘现在somevalue包含“U9”(双字符的串),字符型
2.1.2 常量
VB中的常量指的是不接受程序修改的固定值。
在VB中,有两种形式的常量:直接常量和符号常量
1.直接常量:
(1)字符串常量
字符串常量是用双引号括起来的一串字符。这些字符可以是除双引号“””和回车、换行符以外的所有字符,例如:
“$12,345.00”“vb”“987654”
(2)数值常量
整数、长整数、定点数、浮点数和字节数。
(3)布尔常量
True和False
(4)日期常量
2.符号常量
(1)系统内部定义的常量
系统内部定义的常量是指VB内置的一些便于记忆的常量,通常这些常量会以vb开头,如vbModal
(2)用户定义的常量
格式:
[Private|Public] Const <常量名> [As 类型] = <表达式>
说明:
Private表示该常量只能在定义该常量的模块内使用,而Public表示所定义的常量可以被其他模块使用。
常量名是由1—255个字符组成,包含的符号可以是数字、英文字母或下划线,中间不能有“.”或其他类型说明字符,并且必须以英文字母开头。
As:说明了该常量的类型,若省略,则数据类型由表达式决定。
表达式:可以是数值常数、字符串常数以及由运算符组成的表达式。对于数值常数,除了可用十进制外,还可以使用16进制(数值前加&H)和8进制数(数值前加&O)。
如果用逗号进行分隔,则在一行中可放置多个常量声明。
例如:
Public Const PI As Single=3.1415926
Const Person =“李明”默认为Private,且类型为Variant
Public Const conPi=3.14,conMaxPlanets=9,conWorldPop=6E+09
2.1.3 变量
1. 变量名定义规则
(1)命名规则
①变量名可以由字母、数字和下划线组成,但变量名的第一个字符必须是字母。
判断对错:sum,a2;2a,int.sum。
②组成变量名的字符数不得超过255个字符。
③不能用VB保留的关键字做变量名,但可以把保留的关键字嵌入变量名中;同时,变量名也不能是末尾带有类型说明符的关键字。例,变量Print和Print$是非法的,而变量Print_Number是合法的。
关键字:P23
(2)变量命名的注意事项
①最好使用有实际意义、容易记忆和通用的变量名,即要见名知义。比如用sum(或s)代表求和。用Difference(或d)代表求差等。
②尽可能简单明了,尽量不要使变量名太长,因为太长了不便于阅读和书写。
③不能用VB的关键字做变量名。VB的关键字指VB系统中已经定义的词,如语句、函数和运算符名等。
④变量名不能与过程名和符号常量名相同。
⑤尽量采用VB建议的变量名前缀或后缀的约定来命名,以便区分变量的类型,如:intMax,strName。
⑥VB不区分变量名和其他名称中字母的大小写。
2.变量声明的种类
声明一个变量就是给出变量的名称和变量的数据类型,VB变量的声明有两种方式:隐式声明和显式声明。
隐式声明:不经声明直接使用,VB给该变量赋予缺省的类型和值。
显式声明:变量声明后再使用。可以通过设置强制让模块中的所有变量必须声明后才可使用,这样可以利用编译系统检查出错误。
3. 变量的强制声明
&:【工具】→【选项】→【编辑器】中的【要求变量声明】选项前加【√】。
&:在窗体的对象列表中选择【通用】,然后在“声明区”(Declarations)中声明
Option Explicit
(1)Dim语句
格式:
Dim 变量名 [As 类型]
例如:
Dim s As Long
(2)Static语句
格式:
Static 变量名 [As 类型]
功能:
由关键字Static声明的变量是静态变量。
如在某个子程序中定义了一个静态变量,该变量的值会保留到下次调用。
例如:
Private Sub X_Click()
Static a As Integer
Dim b As Integer
a=a+1
b=b+1
End Sub
第一次由于未对a和b赋值,所以默认为0,执行完最后一语句时,a、b均等于1;第二次调用时,由于a是静态变量(由Static声明),所以初值为1,而b是动态变量,所以初值仍为0,结束后a为2,而b为1。
(3)Private语句
格式:
Private 变量名 [As 类型]
功能:
由关键字Private声明的变量是局部变量。
(4)Public语句
格式:
Public 变量名 [As 类型]
功能:
由关键字Public声明的变量是全局变量。
4. 变量声明的使用规则
全局变量:可以在所有的窗体和模块中使用这个变量,其值在整个应用程序中不会消失。
窗体/模块级变量:在【通用声明】段中用Dim或Private语句声明的变量,可被本窗体或模块的任何过程访问
局部变量:在过程中用Dim或Static命令声明的变量,只能在本过程中使用,不同的过程中可以有同名的局部变量。如果一个局部变量与过程外的其他类型的变量同名时,在定义该局部变量的过程内,该局部变量有效。
5. 用户自定义数据类型
用户可以建立一数据类型作为标准的类型使用,主要是用于定义一些包含多个成分的数据。
格式:
[Private] Type <自定义类型名>
各元素说明
End Type
例如:定义数据类型person,有2个元素
Type person
name As String*10
age As Integer
End Type
使用:
Dim abc As person
可以用 abc.name和abc.age来引用各元素
小结 |