




已阅读5页,还剩18页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
前面已经介绍了VisualBasic2005的基本数据类型 但在实际的编程过程中 会发现仅仅使用这些数据类型是远远不够的 例如要处理100个同学的姓名 学号以及成绩 不难看出 使用基本变量是难以解决的 为此 VisualBasic2005引入了数组 结构和枚举等复合数据类型 第4章数组 结构与枚举 本章学习目标 1 掌握数组的概念 数组初始化的方法 2 熟练掌握静态数组和动态数组的概念和应用 3 掌握结构类型的定义方法以及如何声明和使用结构变量 4 理解枚举类型的定义方法 数组 计算机处理的数据各种各样 这些数据根据是否有序可以分为两类 1 无序性数据 仅与取值有关 与其所在的位置无关 2 有序性数据 不仅与取值有关 而且与其所在的位置有关 在程序设计中 利用简单变量可解决很多处理无序性数据的问题 但对于有序性数据 使用简单变量处理将是一件十分复杂的事 为此 需要引入功能更强的数据类型 数组 数组 将一组有序的 个数有限的 数据类型相同的数据组合作为一个整体 用一个统一的名字 数组名 来表示 这些有序数据的全体则称为一个数组 下面列举了几组可以与不可以构成数组的数据 1 2 3 4 5 6 7 8 可以构成数组 整型数组 A B C D E 可以构成数组 字符串型数组12 abc True 不可以构成数组 数据类型不一致 数组元素 下标 在同一数组中 构成该数组的数据称为数组元素 如在上面列举的几组数据中 1是第一个数组的元素 B 是第二个数组的元素 前面说过 VisualBasic2005中用一个统一的名字 数组名 来表示数组 如果要访问数组中的数组元素 就需要将数组名与下标结合起来 所谓 下标 就是指数组元素在该数组中的索引值 在VisualBasic2005中 数组元素的索引值是从0开始的 如 0 1 2 3 4 5 数组的类型 数组的类型是指构成数组的元素的数据类型 构成同一数组的所有数组元素的数据类型必须一致 它可以是任何的基本数据类型 如 整型 字符串型等 也可以是用户自定义类型 如结构 枚举等 数组的维数 数组中下标的个数称为数组的维数 如果数组中的所有元素 都能按行 或列 顺序排成一行 或一列 则只需要用一个下标便能标识其所在的位置 这样的数组称为一维数组 如 A B C D E 如果数组中的所有元素 能按行 列顺序排成一个矩阵 那就必须用两个下标来标识它们的位置 这样的数组称为二维数组 依次类推 需要3个下标的数组 称为三维数组 数组有多少个下标 就称为多少维数组 二维或以上维数的数组称为多维数组 但通常超过三维的数组就很少使用了 数组的形式 在VisualBasic2005中 根据数组元素的个数是否有限 分为两种形式的数组 1 静态数组 数组元素的个数固定不变 声明时指定元素的个数 静态数组通常用于处理那些元素个数相对稳定的数据 例如 对100个整型数据的排序 因为其元素个数固定为100 所以应当使用静态数组来解决 2 动态数组 数组元素的个数可以在运行时改变 声明时不指定元素的个数 动态数组通常用于处理那些元素个数需要改变的数据 例如 输入项数 对数列1 2 3 5 8 求和 因为其元素个数是随着用户的输入而改变的 所以应当使用动态数组来解决 数组的声明 声明一个数组的语法格式为 Dim As 说明 为必选项 它跟普通变量一样 必须遵循VisualBasic2005标识符规则 是可选项 表示数组的维数 如定义二维或二维以上的数组 下标与下标之间用逗号隔开 声明时下标值为数组元素下标的最大值 例如 声明一个10个元素的数组 其下标值应该为9 因为数组元素的下标从0开始 As 为可选项 表示数组的类型 如省略则为Object型 数组的初始化 给数组中的各个数组元素赋初值 称为数组的初始化 在VisualBasic2005中 可以在声明动态数组时给其初始化 如 声明一维动态单精度型数组Score 并初始化Dimscore AsSingle 90 0 85 5 68 0 52 5 76 0 声明二维动态整型数组b 并初始化 表示4 1 1小节中的矩阵Dimb AsInteger 1 2 3 4 2 3 4 5 3 4 5 6 声明一维动态字符串型数组letterStr 并初始化DimletterStr AsString A B C D E 数组元素的访问 数组声明以后 就可以通过数组元素在数组中对应的索引值 即下标 来访问 如上面声明的三个数组Score b LetterStr 以下列举几个访问其元素的例子 Score 2 表示数组Score中索引值为2的元素 即68 0b 1 2 表示数组b中第1 2索引值分别为1 2 即第二行第三列 的元素 即4LetterStr 3 表示数组LetterStr中索引值为3的元素 即 D 动态数组 在使用数组时 有时在程序设计阶段并不知道数组的大小 从而无法正确声明数组的大小 如果声明太小 则无法满足程序要求 如果声明太大 那么当然可以满足程序的要求 但运行时存放该数组的内存被长期占用 导致系统效率降低 当遇到这种情况时 就需要使用动态数组 因为动态数组允许程序员在程序运行的过程中根据需要改变数组的大小 ReDim语句 动态数组的声明在4 1 2节已经介绍过 这里将介绍如何利用ReDim语句分配实际的元素个数 ReDim语句的语法格式为 ReDim Preserve 说明 其中Preserve关键字为可选项 其作用是在重新声明数组时 在重新声明的数组中复制原数组中的元素 即仅改变数组的大小 不丢失原数据 若对多维数组使用Preserve关键字 则只能改变最后一维的大小 其他维不变 否则会发生错误 使用ReDim语句要注意以下几点 1 ReDim语句仅可以在过程级出现 但不可以在类或模块级代码区使用ReDim语句来重新声明数组 2 ReDim语句只是更改已被正式声明的数组的一个或多个维数的大小 不能更改该数组的维数 3 ReDim语句无法更改数组中元素的数据类型 和Dim语句声明数组的区别在于无法在ReDim语句中初始化重新声明的数组 4 可以多次地重定义数组大小 ReDim语句示例 DimweekStr AsString 星期一 星期二 星期三 ReDimPreserveweekStr 4 weekStr 3 星期四 weekStr 4 星期五 上述代码等价于 DimweekStr AsString 星期一 星期二 星期三 ReDimweekStr 4 weekStr 0 星期一 weekStr 1 星期二 weekStr 2 星期三 weekStr 3 星期四 weekStr 4 星期五 ForEach语句 ForEach Next语句是专用于数组和集合的循环语句 类似于For Next循环语句 通过ForEach Next语句 可以十分方便地访问数组中的每一个元素 其语法格式为 ForEachIn ExitFor Next 说明 代表数组中的每个元素 为数组名 没有小括号和维数 结构 结构是VisualBasic6 0中用户自定义类型的扩展 结构中除了字段外 还可以定义属性 方法和事件 对于每个成员可以定义不同的可访问性 一个结构可以实现一个或多个结构 当需要将一些相关联的信息保存在一起时就使用结构 例如 要知道一个学生的姓名 学号 性别 VB成绩等信息 就可以定义一个名为student的结构 包含这些不同的数据成员 这样比使用单独的变量存放这些信息要方便得多 结构的声明 声明结构的语法如下 Dim Public Private Friend StructureAs AsEndStructure结构中的成员可以是数组 也可以是结构 定义上述student结构如下 StructurestudentDimnameAsStringDimnoAsStringDimsexAsStringDimvbScoreAsSingleEndStructure 建立和使用结构变量 定义了结构后 可以像声明普通变量一样声明结构变量 如下面声明了一个student类型的变量liMing DimliMingAsstudent同样 结构也可以作为数组元素的数据类型 如 Dimstu 10 Asstudent 定义结构数组stu 数组大小为11声明了结构变量后 就可以访问其中某个字段 使用方法为 如 访问liMing的姓名的方法为 liMing name同理 stu 5 no表示结构数组stu的第六个学生的学号 stu 10 vbScore表示结构数组stu的最后一个学生的VB成绩 枚举 在编程中有时会遇见在一些固定的有限个元素中取其一的情况 比如一周七天中的一天 一年十二个月中的一月等 要说明这些数据 使用一般变量或是结构都不合适 在VisualBasic2005中定义了枚举类型来解决这类问题 枚举的声明 声明结构的语法如下 Public Private Protected Friend ProtectedFriend Enum As EndEnum说明 As 为可选项 必须为整型数值类型 即 Byte Short Long Integer 缺省情况下为 Integer 为可选项 可以在定义常量成员时指定一个初值 如不指定 系统默认第一个成员为0 第二个为1 依此类推 枚举其实就是一组相关的常量的集合 例如 可定义一个枚举来描述一周中的七天 它包含七个常量成员 每个成员代表一周中的一天 如下 PublicEnumweekDaysSaturdaySunday 0MondayTuesdayWednesdayThursdayFridayInvalid 1EndEnum上面的枚举中 Saturday是首个元素被默认为0 Sunday也被指定为0 因而Monday为1 Tuesday为2 无效日期为 1 使用枚举 定义了枚举后 可以声明枚举型变量使用它 如 DimmyDayAsweekDays请看下面的代码 DimmyDayAsweekDays weekDays Friday 定义枚举变量myDay并初始化IfmyDay weekDays SaturdayOrweekDays SundayThen 该条件等价于myDay 0MessageBox Show 双休日 ElseMess
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 化工冬季安全生产培训课件
- 农业机械分离装置课件
- 别墅土建安全培训课件
- 兴发集团安全生产培训课件
- 内部审计程序培训课件
- 内部安全培训资料课件
- 宏观环境因素营销方案(3篇)
- 营销部营销方案(3篇)
- 2024-2025学年九年级上学期第一次月考数学试卷【附答案】
- 内蒙安全员培训课件
- 住房供给调控预案
- 培训行业转介绍
- pos机风险管理办法
- 山河已无恙+吾辈当自强+课件-2025-2026学年高二上学期用《南京照相馆》和731上一节思政课
- 中国兽药典三部 2020年版
- 初中物理课外知识讲座
- 班组质量管理和现场管理培训
- 眼睑裂伤查房
- 卷烟制造工艺学课件-第八章-制丝工艺
- 知名国企的职场礼仪培训材料
- 《品牌管理》第13章 品牌资产保护
评论
0/150
提交评论