VB教程---语法基础1_第1页
VB教程---语法基础1_第2页
VB教程---语法基础1_第3页
VB教程---语法基础1_第4页
VB教程---语法基础1_第5页
已阅读5页,还剩55页未读 继续免费阅读

下载本文档

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

文档简介

VisualBasic6 0的数据类型变量 常量运算符和表达式 语法基础 VisualBasic的数据类型 在VisualBasic中 数据类型包括标准数据类型和由用户自己定义的数据类型 1 数值 Numeric 数据类型 1 整型 Integer 和长整型 Long 用于表示整数 可以为正整数 负整数和0 如 100 12345 123 H1A O123 VisualBasic的标准数据类型 2 单精度浮点型 Single 最大正数值为3 402823E 38 即3 4 1038 最多7位有效数字 3 双精度浮点型 Double 最大正数值为1 79769313486232D 308 即1 8 10308 最多15位有效数字 用E则将该值作Single类型处理 用D则将该值作Double类型处理 3 1415926 123 01 0 5 100 51E4 2 3E2 2 3E 2 10D 3 10D3 4 货币型 Currency 是一种专门为处理货币而设计的数据类型 是一种特殊的小数 保留小数点右边4位和小数点左边15位 5 字节型 Byte 用于存储二进制数 2 日期 Date 数据类型 日期型数据在计算机中按8个字节的浮点数存储 用于表示从公元100年1月1日到公元9999年12月31日的日期 时间范围则是0 00 00 23 59 59 用数字序列表示日期型数据 字符序列必须用 括起来 如 2 17 2003 2003 02 17 February17 2003 17Feb2003 2003 2 178 30 34 均为合法的日期型数据 特别说明 若将一个数值型数据赋给一个日期型变量 则小数点左边的数字代表日期 右边的数字代表时间 0为午夜0点 0 5为中午12点 负数代表的是1899年12月31日之前的日期或时间 计算时以1899年12月30日为界 如 定义变量Mydate为日期型变量 有以下赋值语句 Mydate 2 5日期为1900年1月1日 时间为12 00 00Mydate 1 5日期为1899年12月31日 时间为12 00 00Mydate 1日期为1899年12月31日Mydate 0 5日期为1899年12月30日 时间为12 00 00Mydate 1 5日期为1899年12月29日 时间为12 00 00Mydate 1日期为1899年12月29日 程序举例 3 逻辑 Boolean 数据类型 逻辑型数据用于逻辑判断 只有两个值 真 True 和 假 False 若变量的值为 True False Yes No On Off 信息时 则可将它申明为Boolean类型 Boolean型的默认值为False 逻辑型数据 整型数据 真 转换为 1 假 转换为0其它类型数据 逻辑型数据 非0转换为 真 0转换为 假 4 字符 String 数据类型 字符串型数据是一组由计算机字符组成的序列 一个字符占用一个字节 包括汉字 在VisualBasic中字符串要用双引号括起来 在VisualBasic中有两种字符串 变长字符串 最大长度为231 1个字符 和定长字符串 最大长度为216 1个字符 注意 和 的区别 如 西南交通大学 Chinaisgreat contentoftext1 Text1 Text 5 对象 Object 数据类型 对象数据用4个字节来存储 该32位地址可以引用应用程序中的对象 可以指定一个被申明为对象的变量去引用应用程序所识别的任何实际对象 6 变体 Variant 数据类型 VB对所有未定义的变量都赋予Variant类型 变体型数据是一种可以随时改变数据类型的数据 它为VisuaBasic的数据处理增加了智能性 VB2中加入 变体型数据还包括四种特殊的数据 1 空 Empty 没有指定确定的数据 2 无效 Null 数据不合法 3 出错 Error 说明过程中出现了一个错误条件 4 无指向 Nothing 说明数据还没有指向一个具体对象 优点 可以不考虑存储数据的类型缺点 1 降低运算速度2 以下两种情况依靠机器转换会产生不可思议的结果 编程期间如果变量始终保持一种类型 如果要使程序中保存字符串和数值的变量不变时 只有在要用变体的特殊性时才使用 转换应尽量掌握在程序员手中 VisualBasic的基本数据类型 VisualBasic的用户自定义数据类型 在VisualBasic中 除了标准数据类型外 还允许用户自己定义数据类型 由若干个标准数据类型组成 当需要一个能包含几个相关信息的变量时 就可以使用自定义类型 Type自定义类型名元素名As类型名 元素名As类型名 EndType 自定义类型的定义语句的形式为 自定义类型中的一个成员 该成员的标准数据类型 如 定义一个班中学生的基本情况的数据类型为 TypeStudents 说明Students是自定义类型名NameAsString 8 Name是Students的成员之一 字符串型AgeAsInteger Age是Students的成员之一 整型AddressAsString 30 Address是Students的成员之一 字符串型ComputerAsSingle Computer是Students的成员之一 单精度型EnglishAsSingleMathAsSingleTotalAsSingleAverageAsSingleEndType 程序举例 1 自定义类型必须在标准模块 bas 中定义 默认是Public 2 自定义类型中的元素类型是字符串时 该字符串必须是定长字符串 3 要分清自定义类型名和具有该类型名的变量名 自定义类型名表示的是一种数据类型 同Integer Single等是一样的 而变量名是一个具有某种类型的变量 VB根据变量的不同类型分配必要的存储空间 注意 使用自定义类型时 VisualBasic的枚举类型 Public Private Enum类型名成员名 常数表达式 成员名 常数表达式 EndEnum 枚举类型放在窗体模块 标准模块或公用模块中的声明部分 定义语句的形式为 枚举类型中的一个成员 为可选项 表示元素的值为Long类型 也可以是其它Enum类型 若某个变量的值只能是指定的若干个名字之一 则可定义为枚举类型 所谓枚举 指将变量的值一一列举出来 变量的值只限于列举出来的范围内 1 在Enum语句的格式中 常数表达式 可以省略 在默认情况下 枚举中的第一个常数被初始化为0 其后的常数则初始化为比其前面的常数大1的数值 使用枚举类型时的说明 PublicEnumDays 说明Days是枚举类型名Sunday 说明常数Sunday的值为0Monday 说明常数Monday的值为1TuesdayWednesdayThursdayFridaySaturdayEndEnum 2 可以用赋值语句显式地给枚举类型中的成员赋值 即不省略 常数表达式 所赋的值可以是任何长整型 也可以为负数 PublicEnumWorkDays 说明Days是枚举类型名Saturday 常数Saturday的值只能为0Sunday 0 说明常数Sunday的值为0Monday 说明常数Monday的值为1TuesdayWednesdayThursdayFridayInvalid 1EndEnum 3 VisualBasic将枚举中的成员的数值看做长整型 若将一个浮点数值赋给一个枚举中的成员 VB就会将该数值取整为最接近的长整型 4 当对一个枚举类型中的成员赋值时 可以使用另一个枚举中的成员的数值 5 声明枚举类型后 就可以定义该枚举类型的变量 然后使用该变量存储枚举常量的数值 枚举变量示例 与一般的程序设计语言一样 VB中使用常量和变量来存储各种类型的数据 变量用名字来表示其中存储的数据 用数据类型表示其中存储的数据的具体类型 而常量是用名字来表示某个数值 将无意义的单纯数字用有含义的符号来表示 方便用户使用 VisualBasic中常量分为两类 一为普通常量 即数据本身 另一为符号常量 即用一个标识符表示的常量 普通常量 VisualBasic中的普通常量包括数值常量 字符串常量 逻辑常量 日期常量等 常量 在VB中 用常量表示在整个程序中事先设置的 始终不会改变数值的数据 对于程序中使用的常数 能够用常量表示的应尽可能用常量表示 以增强程序的可读性 符号常量 用户声明常量 符号常量 自定义常量或用户声明常量 在程序中程序员用Const声明的常量 在声明一个常量后 我们就可用常量名来引用其代表的常数 如 ConstPi 3 1415926DimxAsSinglex Sin Pi 4 即x Sin 3 1415926 4 符号常量即是用一个符号名来代替数值或字符串 符号名必须以字母开头 由字母 数字 下划线组成的长度不大于40的字符串 定义符号常量的格式 Const符号常量名 As类型 表达式即定义符号常量名为表达式的值 表达式 可以是数值 字符串或由它们与运算符组合成的简单表达式 也可包含其它已定义的符号常量 但表达式中不能使用函数 如 ConstNAMEAsString 张三 ConstNUMAsInteger 100 2ConstPIAsDouble 3 14159265358979ConstPII 3 1415926 可选项 用于说明常量的数据类型 PI为双精度型 PII为单精度型 不能用VisualBasic中的保留字 如Case If等作为符号常量名 符号常量名必须以字母开头 通常 为了区别于其它变量 符号常量名一般用大写字母表示 符号常量必须先定义后使用 在整个模块中只需要定义一次 关于符号常量的一些说明 符号常量在程序中代替的是具体的某值 不等同于变量 也不能对符号常量重新赋值 变量 变量及变量名 变量名的命名规则 1 变量名必须以字母或汉字开头 后跟字母 汉字 数字或下划线组成的字符串 变量名中不允许使用空格 变量名不得超过255个字符 2 变量名不能和保留字 关键字 同名 3 在VisualBasic中变量名不区分大小字 但习惯上变量名首字母用大写表示 变量名在变量的有效范围内唯一 变量是指在程序执行过程中其值可以改变的量 即变量是用于临时存储数据的 每个不同的变量都用变量的标识符来区分 而变量的标识符就称为变量名 关键字是VisualBasic6 0保留下来作为程序中有固定含义的标识符 是VB内部使用的词 是该语句的组成部分 不能被重新定义以作它用 VB中的关键字有 AsBinaryByRefByValDateElseEmptyErrorFalseForFriendGetInputIsLenLetLockMeMidNewNextNothingNullOnOptionOptionalPrintParamArrayPrivatePropertyPublicResumeSeekSetStaticStepStringThenTimeToTrueWithEvents 变量的声明及类型 在VisualBasic中 使用变量前 要先声明变量名及其类型 以确定系统为它分配的存储单元 声明变量的方式有 1 用Dim Static Public关键字声明变量 显式声明变量 1 Dim关键字 用于模块过程中或窗体级的通用过程中 Dim声明变量的定义格式为 Dim变量名 As类型 为可选项 省略时 默认为变体类型 使用Dim定义变量的一些说明 1 对于字符串变量 根据其存放的字符串长度是否固定 有两种定义方式 DimStr1AsStringDimStr2AsString 10 定义变量Str1为不定长字符串变量 定义变量Str2为定长字符串变量 长度为10 对于定义的字符串变量 当赋给的字符少于给定长度时 用空格填满不足部分 当赋给的字符大于给定长度时 自动截去超出部分的字符 2 一条Dim语句可以定义多个变量 但每个变量必须有自己的类型声明 如 DimCount1AsInteger Count2AsDouble 如 DimNum1 Num2AsSingle Count1 Count2各自为指定类型 Num1为Variant类型 Num2为Single类型 3 用Dim定义变量的数据类型时 也可用数据类型的类型符来代替As子句 注意 变量名与类型符间不能有空格 如 DimNumber 等价于DimNumberAsInteger PrivateSubForm Click DimStr1AsStringDimStr2AsString 4DimStr3AsString 2Str1 中华人民共和国 Str2 中华人民共和国 Str3 中华人民共和国 PrintStr1PrintStr2PrintStr3EndSub 例如 编写窗体的Click事件过程如下 2 Static关键字 用于过程中定义静态变量或静态数组 用Static和Dim定义变量的区别 1 用Static定义的变量在该函数或过程执行结束后 其值能保存下来 当下一次执行时 该值为上一次保存下来的值 而不再是初始化时的值 故用static定义的变量称为静态变量 2 用Dim语句定义的变量随过程的调用而分配存储单元 并进行变量的初始化 一旦过程或函数执行结束 变量的值自动被清除 占用的存储单元也被释放 故用Dim定义的变量 只要过程或函数被调用 变量都将重新初始化 Static声明变量的定义格式为 Static变量名As类型 PrivateSubForm Click DimSum1AsIntegerPrintSum1Sum1 Sum1 1EndSub 例4 1 在 代码 窗体中编写窗体的Click事件过程如下 运行此程序 在窗体上单击数次 窗体上显示的数字始终是0 结果如图所示 PrivateSubForm Click StaticSum2AsIntegerPrintSum2Sum2 Sum2 1EndSub 将上述代码中的Dim换成Static 如下所示 再次运行程序 则每单击一次窗体 窗体上显示的数字便加1 结果如图所示 程序举例 2 隐式声明变量 在VisualBasic中 也可以不事先声明而直接使用变量 这种方式称为隐式声明 所有隐式声明的变量都是变体型数据类型 对于隐式声明的变量 即在使用一个变量之前并不先声明此变量 而是直接用这个名字自动创建一个变量 使用此变量时 可以认为它就是显式声明的 虽然此法很方便 但若变量名拼错了的话 系统会认为它是一个新变量 从而会导致一个难以查找的错误 因此对于隐式声明变量 应尽量少用 应先声明变量的数据类型 这样VisualBasic会以更高的效率处理此数据 补充说明 在VisualBasic中 为了避免因写错变量名而引起的麻烦 可以在 代码 窗口的声明段中加入语句 OptionExplicit这样 在代码中只要遇到一个未经显式声明的名字 VisualBasic都会弹出错误警告 加入语句 OptionExplicit语句后 因此段代码只声明了变量s1 而没有声明变量s2 运行该程序 单击窗体 则弹出编译错误消息框 另外 还可将系统定制为总要求显式声明变量 执行 工具 菜单中的 选项 命令 打开 选项 对话框 在 编辑器 选项卡中选中 要求变量声明 选项 这样就在任何新建的模块中自动插入OptionExplicit语句 但不会在已经建立起来的模块中自动插入 变量的缺省值 除了Object类型外 其他数据类型的变量都有缺省值 数值型 0Boolean型 FalseString型 长度为0的空字符串Date型 0 00 00 变量的作用域 一个变量声明后 并不是在任何地方都能使用它 因每个变量都有自己的作用范围 变量的作用范围即称为变量的作用域 变量的声明方式和声明位置决定了它的作用域 若一个变量是在一个过程内进行声明的 则此过程内的所有代码都可以访问到该变量 其作用域局限在这个过程内 这种变量称为局部变量 若一个变量被声明后 整个应用程序内的代码都可以访问该变量 则该变量为全局变量 补充说明 在介绍变量的作用域之前 先了解一个应用程序的组成 变量的作用作用域可分为三个层次 局部变量 模块级变量和全局变量 下表列出了变量的作用范围及使用规则 注意 若不特别说明 模块是指对窗体模块与标准模块的统称 1 局部变量 局部变量是指在过程内使用Dim语句或Static语句声明的变量 在过程内不加声明而直接使用的变量 即隐式声明的变量 也是局部变量 一个应用程序包含若干个模块 模块中又包含若干个过程 对于局部变量 只能在声明它的过程中使用 本模块的其它过程以及其它模块均不可访问 说明 在不同的过程中可以声明相同名称的变量 它们相互独立 互不干扰 2 模块级变量 模块级变量是指在模块的任何过程之外 即在模块的声明部分使用Dim语句或Private语句声明的变量 模块级变量可被本模块的任何过程访问 3 全局变量 全局变量是指在模块的任何过程之外 即在模块的 通用声明 段使用Public语句声明的变量 可被本模块的任何过程访问 说明 在窗体模块声明的全局变量 在访问时需要在变量名前加窗体名 而在标准模块中声明的全局变量可以直接访问 例如 在窗体模块中定义了四个变量A B C和D 如图 则A为全局变量 B为模块级变量 C和D为局部变量 说明 在VisualBasic中 作用域不同的变量的名称可以相同 并且作用域小的变量的优先级高 程序中对数据的操作 其实就是指对数据的各种运算 被运算的对象 如常数 常量和变量等称为操作数 运算符是用来对操作数进行各种运算的操作符号 如加号 减号 等 在高级语言中 通过运算符将操作数连接成的在意义的式子 即称为表达式 VisualBasic中有丰富的运算符和表达式 可分为 算术运算符和算术表达式 关系运算符和关系表达式 逻辑运算符和逻辑表达式 字符串运算符和字符串表达式 赋值运算符 赋值运算符 在声明一个变量后 要先给变量赋上一个合适的值才能够使用 给变量赋值的格式为 变量名 表达式 可以为普通的常量 变量或表达式及函数 如 一个变量X 常用以下几种方式进行赋值 X 10X YX X 1 为一个已经赋过值的变量 算术运算符与算术表达式 算术运算符是用于进行算术运算的 其操作对象是数值型的数据 如整型 长整型 单精度浮点型 双精度浮点型及货币型数 下表列出了VisualBasic中提供的算术运算符 其中取负运算符 只需一个操作数 称之为单目运算符 其它运算符都需两个操作数 称之为双目运算符 运算符的优先级表示当表达式中有多个运算符时 先执行哪个运算符 算术运算符 整除运算 的结果是商的整数部分 如7 2表示整除 商为3 5 结果取整数部分3 不进行四舍五入 若参加整除的操作数为浮点数 则先按四舍五入的原则将其转换为整数 再执行整除运算 如 8 5 2 先将8 5变以9 商为4 5 结果为4 算术运算符的一些说明 执行除法运算 时 除非有一个操作数为Double 否则系统按Single的方式运算 求余运算 Mod 是求两个整数相除后的余数 若参加运算的操作数为浮点数 则先按四舍五入的原则将它们变成整数 然后再执行求余运算 如8 5Mod2 1 结果为1 指数运算是计算乘方和求根式的运算 如36 1 2 结果为6 关系运算符与关系表达式 关系运算符是双目运算符 是用来对两个操作数进行大小比较的 它们的优先级相同 关系运算的结果是一个逻辑值 即真 True 或假 False 若关系成立 则结果为True 否则结果为False 在VisualBasic中 True用 1表示 False用0表示 如 关系表达式5 4 显然不成立 因此 运算结果为False 关系运算符 关系运算在进行比较时应注意的规则 当两个操作数是数值型时 比较按数值的大小进行 当两个操作数是字符型时 则按字符的ASCII码值从左到右逐个比较 即首先比较两个字符串中的第一个字符 ASCII码值大的字符串大 若两个字符串的第一个字符相同 则比较第二个字符 依次类推 直到比较出大小为止 关系运算符中的 与赋值语句中的 的作用截然不同 其作用是判断两边的值是否相等 表达式可以出现在 的两边 关系运算符的优先级相同 逻辑运算符与逻辑表达式 逻辑运算符的作用是对操作数进行逻辑运算 逻辑运算符中只有Not为单目运算符 其余均为双目运算符 逻辑运算的结果是一个逻辑值 逻辑运算的操作数可以是逻辑值 True或False 或关系表达式 也可以对数值进行逻辑运算 若参加逻辑运算的操作数是数值 则以数值的二进制值逐位进行逻辑运算 如 10Or7表示对1010与0111进行逻辑或运算 结果为二进制数1111 十进制数15 注意 操作数与逻辑运算符间必须有空格 逻辑运算符 字符串运算符与字符串表达式 字符串运算符有两个 和 其作用是将两个字符串连接起来 和 都是双目运算符 例如 VisualBasic 程序设计语言 结果为 VisualBasic程序设计语言 电脑 爱好者 结果为

温馨提示

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

评论

0/150

提交评论