vb基础语法

5.1 VB语言字符集及编码规则
5.1.1 VB的字符集
l___字母:大写英文字母A—Z;小写英文字母a—z.
l___ 数字:0一9;
l 专用字符:共27个,P48表.
5.1.2 编码规则与约定
(一)编码规则
1.VB代码中不区分字母的大小写.
2.同一行上可以书写多条语句,但语句间要用冒号":"分隔.
3.若一个语句行不能写下全部语句,或在特别需要时,可以换行.换行时需在本行后加入续行符,1个空格加下划线"_".
4.一行最多允许255个字符.
5.注释以Rem开头,也可以使用单引号"'",注释内容可直接出现在语句的后面.
6.在程序转向时需用到标号,标号是以字母开始而以冒号结束的字符串.
(二) 约定
1.为了提高程序的可读性,对于VB中的关键字其首字母大写,其余字母小写
2. 注释有利于程序的维护和调试
Rem开始 或 单撇 '.
例如: ' This is a VB
REM This is a VB
在6.0中新增了"块注释/取消块注释"(视图/工具栏/编辑)
3.通常不使用行号
4.对象名命名约定:每个对象的名字由3个小写字母组成的前缀(指明对象的类型)和表示该对象作用的缩写字母组成 .如命令按钮前缀:cmd
5.2 数据类型
5.2.1 标准数据类型
5.2.2 自定义类型
在模块级别中使用,用于定义包含一个或多个元素的用户自定义的数据类型.
使用形式:
Type 自定义类型名
元素名 [([下标])] As 类型名
元素名 [([下标])] As 类型名
. . .
End Type
见下例
Type Student
Xh As Sting
Xm As String
Xb As String
Nl As Integer
Score As Single
End Type
例如: 对于一个学生的"学号","姓名","性别","年龄","入学成绩"等数据,为了处理数据的方便,常常需要把这些数据定义成一个新的数据类型(如Student类型).
5.3 常量和变量
5.3.1 常 量
在程序运行过程中,其值不能被改变的量称为常量.在VB中有三类常量:
普通常量
符号常量
系统常量
一,普通常量
1._ 整型常量
(1)整型(Integer):表示-32768至32767之间的整数
例如:10 110 20
(2)长整型(Long):
表示-2,147,483,648至2,147,483,647之间的整数
例如:长整型常数的书写: 23&
通常我们说的整型常量指的是十进制整数,但VB中可以使用八进制和十六进制形式的整型常数,因此整型常数有如下三种形式:
1)十进制整数.如125,0,-89.20
2)八进制整数.以&或&O(字母O)开头的整数是八进制整数,如&O25表示八进制整数25,即(25)8 ,等于十进制数21.
3)十六进制.以&H开头的整数是十六进制整数,如&H25表示十六进制整数25,即(25)16 ,等于十进制数37.VB中的颜色数据常常用十六进制整数表示.
2,实型常量
1) 单精度实型(Single):有效数为7位
表示-3.37E+38至3.37E+38之间的实数
2)双精度实型(Double):有效数为15位
实型常量的表示:
1)十进制小数形式.它是由正负号(+,-),数字(0~9)和小数点(.)或类型符号(!,#)组成,即±n.n,±n!或±n#,其中n是0~9的数字.
例如0.123,.123,123.0,123!,123#等都是十进制小数形式.
2)指数形式.
±nE±m 或 ±n.nE±m, ±nD±m 或 ±n.nD±m
例:1.25E+3 和 1.25D+3相当于1250.0 或者1.25×103.
3,字符串常量
在VB中字符串常量是用双引号"""括起的一串字符,例如"ABC","abcdefg","123","0","VB程序设计"等.
说明:
(1)字符串中的字符可以是所有西文字符和汉字,标点符号等;
(2)""表示空字符串,而" "表示有一个空格的字符串;
(3)若字符串中有双引号,例如ABD"XYZ,则用连续两个双引号表示,即:
"ABD""XYZ"
4,逻辑(Boolean)数据类型
只有两个值True,或False.将逻辑数据转换成整型时:True为-1,False为0;其它数据转换成逻辑数据时:非0为True, 0为False.
5,日期常量
日期(Date)型数据按8字节的浮点数来存储,表示日期范围从公元100年1月1日~9999年12月31日,而时间范围从0:00:00~23:59:59.
一种在字面上可被认作日期和时间的字符,只要用号码符"#"括起来,都可以作为日期型数值常量.
例:#09/02/99#,#January 4,1989#,#2002-5-4 14:30:00 PM#都是合法的日期型常量.
说明:当以数值表示日期数据时,整数部分代表日期,而小数部分代表时间;例如1表示1899年12月31日.大于1的整数表示该日期以后的日期,0和小于0的整数表示该日期以前的日期.
二,符号常量
在程序中,某个常量多次被使用,则可以使用一个符号来代替该常量,这样不仅在书写上方便,而且有效地改进了程序的可读性和可维护性.
VB中使用关键字Const 声明符号常量.其格式如下:
Const 常量名 [As 类型|类型符号]=常数表达式
例如:
Const PI#=3.1415926535 等价于:
Const PI As Double=3.1415926535
三,系统常量
VB系统提供了应用程序和控件的系统定义常数.它们存放于系统的对象库中,在"对象浏览器"中的 Visual Basic(VB) 和 Visual Basic for applications(VBA)对象库中列举了 Visual Basic 的常数
例如,要将文本框Text1的前景颜色设置为红色,可以使用下面的语句:
Text1.ForeColor=vbRed
这里的vbRed就是系统常量.这比直接使用16进制数来设置要直观得多.

又如,窗口状态属性WindowsState可取0,1,2三个值,对应三种不同状态.
在程序中使用语句 Myform.WindowsState=vbMaxmized,将窗口极大化,显然要比使用语句Myform.WindowsState=2 易于阅读和理解.
一.变量和常量的命名规则
1. 以字母或汉字开头,后可跟字母,数字或下划线组成,长度小于等于40个字符;
2. 不能使用VB中的关键字;
3. VB中不区分变量名的大小写.
4. 为了增加程序的可读性,可在变量名前加一个缩写的前缀来表明该变量的数据类型.
例如:strAbc, (字符串变量) iCount, (整型变量)
dblx, (双精度变量) sYz (单精度变量)
5.3.2 变 量
二.变量声明
1.用Dim语句显式声明变量
形式:Dim 变量名 [AS 类型]
Dim 变量名[类型符]
例 Dim iCount As integer , sum As single
等价于 Dim iCount%, sum!
2.隐式声明
Visual Basic允许用户在编写应用程序时,不声明变量而直接使用,系统临时为新变量分配存储空间并使用,这就是隐式声明.所有隐式声明的变量都是Variant数据类型.Visual Basic根据程序中赋予变量的值来自动调整变量的类型.
例如:
下面是一个很简单的程序,其使用的变量a, b, Sum都没有事先定义.
Private Sub Form_Click()
Sum = 0
a = 10: b = 20
Sum = a + b
Print "Sum="; Sum
End Sub
3.强制显式声明——Option Explicit语句
良好的编程习惯都应该是"先声明变量,后使用变量",这样做可以提高程序的效率,同时也使程序易于调试.Visual Basic 中可以强制显式声明,可以在窗体模块,标准模块和类模块的通用声明段中加入语句:Option Explicit
5.4 变量的作用域
概述:
在VB中,由于可以在过程中和模块中声明变量,根据定义变量的位置和定义变量的语句不同,变量可以分为:
局部变量(过程级变量)
窗体/模块级变量(私有的模块级变量,能被本模块的所有过程和函数使用)
全局级变量(公有的模块级变量).
5.4.1 过程级变量——局部变量
局部变量:
在过程内用声明的变量,只能在本过程中使用.
在过程内部使用 Dim 或者 Static 关键字来声明的变量,只在声明它们的过程中才能被访问或改变该变量的值,别的过程不可访问.所以可以在不同的过程中声明相同名字的局部变量而互不影响.
例:
Private Sub Form_Load()
Dim n%
n= 10
End Sub
Private Sub From_Click()
Dim n%
Print "n=";n
End Sub
程序运行后单击窗体,其输出结果是什么
5.4.2 窗体/模块级变量
窗体/模块级变量:
在"通用声明"段中用Dim语句或用Private语句声明的变量,可被本窗体/模块的任何过程访问.但其他模块却不能访问该变量.
例如:在"通用声明"段声明如下变量
Private s As String
Dim a As Integer,b As Single
5.4.3 全局变量
全局变量也称公有的模块级变量,在窗体模块或标准模块的顶部的"通用"声明段用Public关键字声明,它的作用范围是整个应用程序,即可被本应用程序的任何过程或函数访问.
例如:
Public a As Integer,b As single
3种变量声明及使用规则如下表:
一,公用变量与局部变量同名
在不同过程中定义同名变量,它们互不影响,但若在一过程中定义使用了与全局变量同名的变量,则就应注意.
5.4.4 关于多个变量同名
注意:在过程中,如果定义了与模块级变量(在通用部分使用Private或Dim声明的变量),则在该过程内不能引用同名的模块级变量.例如,上面的例子中,如果将定义全局变量的语句Public Temp As Integer改为Private Temp As Integer 则在Command1的单击事件中就不使用模块级的Temp变量.
Public Temp As Integer ' 定义全局变量
Private Sub Form_Load()
Temp = 1 ' 将全局变量Temp 的值设置成 1
End Sub
Private Sub Command1_Click()
Dim Temp As Integer ' 定义局部变量
Temp = 2 ' 将局部变量Temp 的值设置成 2
Print "temp="; Temp
Print "temp="; Form1.Temp
End Sub
Private Sub Command2_Click()
Print "temp="; Temp
End Sub
二,全局变量同名
如果不同模块中的全局变量使用同一名字,则通过同时引用模块名和变量名就可以在代码中区分它们.
例如,如果有一个在 Form1 和 Module1 中都声明了公用的 Integer 变量 intX,则把它们作为 Module1.intX 和Form1.intX 来引用便得到正确值.也就是说如果不同模块中的全局变量使用同一名字,引用时就需要使用"模块名.变量名"的形式来区分它们.
5.4.5 静态变量
除作用域之外,变量还有存活期,在这一期间变量能够保持它们的值.
在应用程序的存活期内一直保持模块级变量和全局变量的值.但是,对于Dim声明的局部变量仅当过程执行期间存在,当一个过程执行完毕,它的局部变量的值就已经不存在,而且变量所占据的内存也被释放.当下一次执行该过程时,它的所有局部变量将重新初始化.
概念
局部变量的存活期由其定义的关键词来决定.
局部变量声明:
Dim声明:随过程的调用而分配存贮单元,变量的初始化;过程体结束,变量的内容自动消失,存贮单元释放.
Static声明,每次调用过程,变量保持上次调用结束时的值.
声明形式:
Static 变量名 [AS 类型]
Static Function 函数过程名([参数列表]) [As 类型]
Static Sub 子过程名[(参数列表)]
注意:过程名前加Static,表示该过程内的局部变量都是静态变量.
例5.2 有一个人编了下面一段程序,想用变量n记录单击窗体的次数.
Private Sub Form_Click()
Dim n As Integer
n = n + 1
Print "已单击次数:"; n & "次"
End Sub
分析程序运行后多次单击窗体的输出结果:
要记录单击窗体次数,如何实现 并比较使用模块变量和静态变量的差别.
Private Sub Form_Click()
Dim i% ,isum%
For i = 1 To 5
isum = sum(i)
Print isum,
Next i
End Sub
Private Function sum(n As Integer)
Dim j As Integer
j = j + n
sum = j
End Function
1 2 3 4 5
Static j As Integer 结果如何
补充例题:
5.5 运算符和表达式
一. 运算符
5.5.1. 算术运算符(均是双目运算,ia=3)
例:5+10 mod 10 / 9 / 3 +2 ^2 结果是:
10
说明:计算时自动调整精度

5.5.2. 字符串运算符与字符串表达式
字符串运算符有:& ,+ . 功能是字符串连接
例如:
"ABCD" + "EFGHI" ' 结果为:ABCDEFGHI
" VB " & "程序设计教程" ' 结果为:VB程序设计教程
说明:当连接符两旁的操作量都为字符串时,上述两个连接符等价.它们区别是:
+(连接运算):两个操作数均应为字符串类型;
&(连接运算):两个操作数既可为字符型也可为数值型,当是数值型时,系统自动先将其转换为数字字符,然后进行连接操作.
例:
"100" + 123 ' 结果为 223
"100" + "123" ' 结果为 100123
" Abc" + "123" ' 出错
" 100" & 123 ' 结果为 100123
100 & 123 ' 结果为 100123
" Abc" & "123" ' 结果为 Abc123
" Abc" & 123 ' 结果为 Abc123
注意:使用运算符"&"时,变量与运算符"&"之间应加一个空格.这是因为符号"&"还是长整型的类型定义符,如果变量与符号"&"接在一起,VB系统先把它作为类型定义符处理,因而就会出现语法错误.
5.5.3 关系运算符与关系表达式

关系运算符都是双目运算,是用来比较两个运算量之间的关系,关系表达式的运算结果为逻辑量.若关系成立,结果为True,若关系不成立,结果为False.
VB中的关系运算符如下表所示.
运算符
含义
优先级
实例
结果
<
小于
所有关系运算优先级相同.低于算术运算的加"+",减"-"运算,高于逻辑非"Not"运算.
15+10<20
False
<=
小于或等于
10
大于
10>20
False
>=
大于或等于
"This">= "That"
True
=
等于
"This"= "That"
False
不等于
"This" "That"
True
Like
字符串匹配
"This" Like *is"
True
Is
对象比较
_
_
关系运算的规则如下:
(1)当两个操作式均为数值型,按数值大小比较.
(2)字符串比较,则按字符的ASCII码值从左到右一一比较,直到出现不同的字符为止..
例: " ABCDE " > " ABRA " 结果为 False
(3)数值型与可转换为数值型的数据比较,
如:29>"189" ,按数值比较,结果为False.
(4)数值型与不能转换成数值型的字符型比较,
如:77>" sdcd" ,不能比较,系统出错.
(5)"Like"运算符是VB6.0新增加的.
其使用格式为:str1 Like str2
5.5.4 逻辑运算符与逻辑表达式
Not 逻辑非为单目运算符(要求一个操作数),其它为双目运算符.
条件表达式1 And 条件表达式2 条件表达式均为T 结果为T
条件表达式1 Or 条件表达式2 条件表达式有一个T 结果为T
说明:
(1)逻辑运算符的优先级不相同,Not(逻辑非)最高,但它低于关系运算,Imp(逻辑蕴含)最低.
(2)VB中常用的逻辑运算符是Not,And和Or.它们用于将多个关系表达式进行逻辑判断.
例如,数学上表示某个数在某个区域时用表达式: 10≤X=10 And X=字符运算符>关系运算符>逻辑运算
说明:
1.当一个表达式中出现多种运算符时,首先进行算术运算符,接着处理字符串连接运算符,然后处理比较运算符,最后处理逻辑运算符,在各类运算中再按照相应的优先次序进行.
2.可以用括号改变优先顺序,强令表达式的某些部分优先运行.括号内的运算总是优先于括号外的运算.对于多重括号,总是由内到外.
3. 表达式的书写中需注意的问题
(1)运算符不能相邻.例a+-b是错误的.
(2)乘号不能省略.例x 乘以y 应写成:x*y
(3)括号必须成对出现,均使用圆括号.
(4)表达式从左到右在同一基准并排书写,不能出现上下标
(5)要注意各种运算符的优先级别,为保持运算顺序,在写VB表达式时需要适当添加括号(),若用到库函数必须按库函要求书写. 如:
(b-sqr(b*b-4*a*c))/(2*a)
(a+b)/(a-b)

 

  • 2
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值