




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、第二章第二章 Visual Basic.NET语法基础语法基础 本章主要介绍以下内容:本章主要介绍以下内容:l l Visual Basic.NET数据类型数据类型 l l 变量与常量变量与常量 l l运算符与表达式运算符与表达式 l l三种基本语法结构三种基本语法结构 l l数组数组 l l 过程与函数过程与函数l l 程序调试程序调试 l l 作业作业 2.5 2.5 数组数组 在实际应用中,常常需要处理相同类型的一批在实际应用中,常常需要处理相同类型的一批数据。数据。 例如,为了排列例如,为了排列200个学生的成绩,可以用个学生的成绩,可以用S(1),),S(2),),S(100)来分别
2、存放每个学来分别存放每个学生的成绩,其中生的成绩,其中S(1)存放第一个学生的成绩存放第一个学生的成绩,S(2)存放第二个学生的成绩存放第二个学生的成绩 在在VB.NET中,把一组中,把一组具有相同名字、不同下具有相同名字、不同下标的变量称为数组标的变量称为数组 其一般形式为其一般形式为S (n),其中其中S称为数组名称为数组名,n是下是下标。标。2.5 2.5 数组数组 一个数组可以含有若干个一个数组可以含有若干个下标变量下标变量( (或称数组或称数组元素元素) )。下标用来指出某个数组元素在数组中的位。下标用来指出某个数组元素在数组中的位置。置。 一个数组如果只用一个下标就能确定数组元一个
3、数组如果只用一个下标就能确定数组元素在数组中的位置,则称为素在数组中的位置,则称为一维数组一维数组。 也可以说,由具有一个下标的下标变量所组也可以说,由具有一个下标的下标变量所组成的数组称为一维数组,而具有两个或多个下标成的数组称为一维数组,而具有两个或多个下标的下标变量所组成的数组称为的下标变量所组成的数组称为二维数组或多维数二维数组或多维数组组 一维数组一维数组声明数组的格式为:声明数组的格式为:Dim数组名数组名(最大下标最大下标)As类型名类型名(1)数组的命名与简单变量的命名规则相同。数组的命名与简单变量的命名规则相同。(2)数值数组中的元素若为基本数组类型,则全部元素都自动数值数组
4、中的元素若为基本数组类型,则全部元素都自动初始化为初始化为0,字符串数组或字符数组中全部元素都自动初始化,字符串数组或字符数组中全部元素都自动初始化为为Nothing。(3)下标必须用括号括起来,下标可以是常数、变量或表达式。下标必须用括号括起来,下标可以是常数、变量或表达式。(4)下标必须是整数,否则将被自动取整(舍去小数部分)下标必须是整数,否则将被自动取整(舍去小数部分) 声明一维数组时要指定声明一维数组时要指定: 数组的名字数组的名字 大小大小(元素的个数元素的个数) 元素数据类型元素数据类型 访问级别访问级别(如果需要如果需要)指定数组的名字指定数组的名字指定数组元素指定数组元素的元
5、素数据类型的元素数据类型 指定数组的访问级别指定数组的访问级别AccessModifier ArrayName(Size) As Type指定数组的大小指定数组的大小 数组中所有元素是同一数据类型数组中所有元素是同一数据类型每个元素都可以通过索引来访问每个元素都可以通过索引来访问示例示例声明一个有声明一个有7个元素的数组个元素的数组:访问数组的第三个元素访问数组的第三个元素:(0)(1)(2)(3)(4)(5)(6)索引索引 0索引索引 6Dim countHouses(6) As IntegerTextBox1.Text = CStr(countHouses(2)例:表示例:表示10个学生的
6、成绩,声明具有个学生的成绩,声明具有10个元素的数组个元素的数组intScoreDimintScore(9)AsInteger数组名为:数组名为:intScore每个元素为整型数每个元素为整型数下标范围是下标范围是09各元素分别为各元素分别为intscore(0),intscore(9)系统必须为该数组的系统必须为该数组的10个元素分配存储空间个元素分配存储空间Array.GetUpperBound方法方法-获取获取Array的指定维度的上限的指定维度的上限PublicFunctionGetUpperBound(ByValdimensionAsInteger)AsInteger参数参数dime
7、nsion:Array的从零开始的维度,其上限需要确定。的从零开始的维度,其上限需要确定。返回值:返回值:Array中的指定维度的上限中的指定维度的上限例:例:DimintScore(9)AsIntegerDimcountAsIntegerCount=intScore.GetUpperBound(0)Console.WriteLine(count)t【案例【案例2-10】一维数组应用举例。】一维数组应用举例。1 1、声明数组、声明数组2 2、使用、使用forfor循环给数组元素赋值循环给数组元素赋值3 3、将数组元素中的数值显示出来、将数组元素中的数值显示出来t 【案例【案例2-10】一维数组
8、应用举例。】一维数组应用举例。打开记事本编辑下列代码并保存,使用控制台工作界面编译并运行程序。打开记事本编辑下列代码并保存,使用控制台工作界面编译并运行程序。IMPORTSSYSTEMModuleTestSubMain() 声明一维数组声明一维数组arr为为Integer型型,包含包含4个下标变量个下标变量Dimarr(3)AsIntegerDimiAsInteger使用数组的使用数组的GetUpperBound方法获取数组第一维的最大下标值方法获取数组第一维的最大下标值,做循环终值做循环终值Fori=0Toarr.GetUpperBound(0)arr(i)=i*i为数组为数组arr的各元素
9、赋值的各元素赋值Nexti输出数组输出数组arr的各元素值的各元素值Fori=0Toarr.GetUpperBound(0)Console.WriteLine(arr(&i&)=&arr(i)Nexti声明一维数组声明一维数组Emp为为Object型型,包含包含2个下标变量个下标变量DimEmp(1)AsObject注意注意Emp(0)和和Emp(1)分别存放了类型不同的数据分别存放了类型不同的数据Emp(0)=8518Emp(1)=田谷雨田谷雨Fori=0To1Console.WriteLine(Emp(&i&)=&Emp(i)NextiEnd
10、SubEndModule(0,0)(0,1)(0,2)(1,0)(1,1)(1,2)(2,0)(2,1)(2,2)(3,0)(3,1)(3,2)Dimarr(3,2)asintegerarr(0,0)=12arr(0,1)=66fori=0to3forj=0to2arr(i,J)=i+jnextjnexti012123234345二维数组二维数组t【案例【案例2-11】 多维数组应用举例。多维数组应用举例。打开记事本编辑下列代码并保存,使用控制台工作界面编译并运行程序。打开记事本编辑下列代码并保存,使用控制台工作界面编译并运行程序。IMPORTS SYSTEMIMPORTS SYSTEMMod
11、ule TestModule Test Sub Main() Sub Main() 声明二维数组声明二维数组arrarr为为IntegerInteger型型, ,包含包含1212个下标变量个下标变量Dim arr(2,3) As Integer Dim arr(2,3) As Integer Dim i ,J As Integer Dim i ,J As Integer 使用双重循环为二维数组使用双重循环为二维数组arrarr各元素赋值各元素赋值 For i = 0 To arr.GetUpperBound(0) For i = 0 To arr.GetUpperBound(0) FOR J=
12、0 TO arr.GetUpperBound(1) FOR J=0 TO arr.GetUpperBound(1) arr(i,J) = i arr(i,J) = i * * J J NEXT J NEXT J Next i Next i 输出数组输出数组arrarr的各元素值的各元素值 For i = 0 To arr.GetUpperBound(0) For i = 0 To arr.GetUpperBound(0) FOR J=0 TO arr.GetUpperBound(1) FOR J=0 TO arr.GetUpperBound(1) Console.WriteLine(arr(
13、& i & , & J & ) = & arr(i,J) Console.WriteLine(arr( & i & , & J & ) = & arr(i,J) Next J Next J Next i Next i End Sub End SubEnd ModuleEnd Module三、动态数组三、动态数组动态数组是一个比较特殊的数组,当用户不能预见要处理数据的动态数组是一个比较特殊的数组,当用户不能预见要处理数据的个数或不便给出数组的上标时可以使用动态数组,动态数组中的元素个数或不便给出数组的上标时可以使用动
14、态数组,动态数组中的元素个数是可变的。创建动态数组个数是可变的。创建动态数组两个步骤:两个步骤:1、声明动态数组、声明动态数组格式:格式:Public|Private|Dim|Static()As$声明一维动态数组的格式为:声明一维动态数组的格式为:Dim数组名数组名()As类型名类型名$声明二维动态数组的格式为:声明二维动态数组的格式为:Dim数组名数组名(,)As类型名类型名说明:说明:(1)声明动态数组和静态数组的不同之处是不指定数组的下标界限)声明动态数组和静态数组的不同之处是不指定数组的下标界限2、在使用动态数组前,在使用动态数组前,必须必须通过通过ReDim语句指定数组每维语句指定
15、数组每维下标的上限,且可多次改变下标的上限,且可多次改变格式:格式: RedimPreserve 数组名数组名(下标下标) As说明:说明:(1)Redim语句只能在过程中使用。语句只能在过程中使用。(2)可以用可以用Redim语句多次反复定义同一个数组,并改变语句多次反复定义同一个数组,并改变数组的下标,但不能用数组的下标,但不能用Redim语句改变数组的维数和数据语句改变数组的维数和数据类型。类型。(3)用用Redim语句重新定义一个数组的大小时,数组中各语句重新定义一个数组的大小时,数组中各元素原有的值将被清除。元素原有的值将被清除。 (4)如果希望用如果希望用Redim语句改变数组大小
16、又不丢失数组语句改变数组大小又不丢失数组中原有的数据,可使用具有中原有的数据,可使用具有Preserve关键字的关键字的Redim语句。语句。在多维数组中,当使用在多维数组中,当使用 Preserve时只能更改数组的最后一时只能更改数组的最后一维。如果要更改其他维,将会出现运行时错误。维。如果要更改其他维,将会出现运行时错误。(5)可使用可使用Redim语句直接定义数组。语句直接定义数组。Preserve参数:保留数组中原来的数据参数:保留数组中原来的数据DimstrNames()AsStringPrivateSubButton1_Click()ReDimstrNames(2):strName
17、s(0)=MicrosoftstrNames(1)=IBM“:strNames(2)=SUN“:DimiAsIntegerFori=0To2TxtOut.Text+=i.ToString+:+strNames(i)+vbCrLfNextReDimstrNames(3)TxtOut.Text+=-+vbCrLfstrNames(3)=HPFori=0To3TxtOut.Text+=i.ToString()+:+strNames(i)+vbCrLfNextEndSubReDimPreservestrNames(3)t【案例【案例2-12】动态数组的声明方法举例。】动态数组的声明方法举例。打开记事本
18、编辑下列代码并保存,使用控制台工作界面编译并运行程序。打开记事本编辑下列代码并保存,使用控制台工作界面编译并运行程序。ModuleTestSubMain()声明一维数组声明一维数组arr为为Integer型动态数组型动态数组Dimarr()AsInteger使用使用REDIM语句指定动态数组的大小语句指定动态数组的大小REDIMARR(3)输出动态数组输出动态数组arr的一维上界值的一维上界值Console.WriteLine(执行执行REDIMARR(3)命令后命令后,数组上界为数组上界为:_&arr.GetUpperBound(0)使用使用REDIM语句重新指定动态数组的大小语句重
19、新指定动态数组的大小REDIMARR(5)输出动态数组输出动态数组arr的一维上界值的一维上界值Console.WriteLine(执行执行REDIMARR(5)命令后命令后,数组上界为数组上界为:_&arr.GetUpperBound(0)使用使用REDIM语句重新指定动态数组的大小语句重新指定动态数组的大小REDIMARR(2)输出动态数组输出动态数组arr的一维上界值的一维上界值Console.WriteLine(执行执行REDIMARR(2)命令后命令后,数组上界为数组上界为:_&arr.GetUpperBound(0)EndSubEndModule【案例【案例2-13
20、】 PreservePreserve参数用法举例。参数用法举例。打开记事本编辑下列代码并保存,使用控制台工作界面编译并运行程序。打开记事本编辑下列代码并保存,使用控制台工作界面编译并运行程序。IMPORTS SYSTEMIMPORTS SYSTEMModule TestModule Test Sub Main() Sub Main() 声明一维数组声明一维数组arrarr为为STRINGSTRING型动态数组型动态数组 Dim arr( ) As STRING Dim arr( ) As STRING DIM I AS INTEGER DIM I AS INTEGER 使用使用REDIMRED
21、IM语句指定动态数组的大小语句指定动态数组的大小 REDIM ARR(1)REDIM ARR(1) 为动态数组为动态数组arrarr赋值赋值 arr(0)=arr(0)=机械工业出版社机械工业出版社 arr(1)=arr(1)=高教出版社高教出版社 显示动态数组显示动态数组arrarr各元素的值各元素的值 FOR I=0 TO ARR.Getupperbound(0)FOR I=0 TO ARR.Getupperbound(0) Console.WriteLine(arr( & i & ) = & arr(i) Console.WriteLine(arr( &
22、i & ) = & arr(i) NEXT I NEXT I 使用使用REDIMREDIM语句重新指定动态数组的大小语句重新指定动态数组的大小, ,注意使用了注意使用了PreservePreserve参数参数 REDIM Preserve ARR(3) REDIM Preserve ARR(3) 可去掉可去掉PreservePreserve参数后运行参数后运行, ,观察结果观察结果 为动态数组为动态数组arrarr追加赋值追加赋值 arr(2)=arr(2)=科学出版社科学出版社 arr(3)=arr(3)=希望出版社希望出版社 Console.WriteLine(Consol
23、e.WriteLine(执行执行REDIM Preserve ARR(3)REDIM Preserve ARR(3)命令命令, ,并追加赋值后并追加赋值后) 显示动态数组显示动态数组arrarr各元素的值各元素的值 FOR I=0 TO ARR.Getupperbound(0)FOR I=0 TO ARR.Getupperbound(0) Console.WriteLine(arr( & i & ) = & arr(i) Console.WriteLine(arr( & i & ) = & arr(i) NEXT I NEXT I End Sub
24、 End SubEnd ModuleEnd Module四、四、ForEachNext 循环语句在数组中的应用循环语句在数组中的应用 对于数组中的每个元素,执行一次循环,每次循环时,对于数组中的每个元素,执行一次循环,每次循环时,变量名所指定的变量取数组中的一个元素值变量名所指定的变量取数组中的一个元素值格式:格式:ForEach变量名变量名In数组名数组名 循环体循环体ExitForNext变量名变量名DimIAsIntegerDimintSumAsIntegerDima(10)AsIntegerForI=0to10a(i)=I*3NextForEachIinaintSum+=ITextBox1.Text+=I.ToString+intSum.ToString+vbCrLfNextt【案例【
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025浙江温州市人才资源开发有限公司招聘劳务派遣人员招聘37人笔试参考题库附带答案详解
- 2025年项目管理中的财务控制模型试题及答案
- 工业互联网平台AR交互技术驱动:2025年智慧零售解决方案报告
- 2025年市政工程系统试题及答案
- 学习工程经济中的决策结构分析试题及答案
- 行政管理心理学考试技巧试题及答案
- 2025年工业互联网平台与AR技术深度融合在设备维护中的应用报告
- 2025年公文写作与处理的关键试题及答案总结
- 水利水电工程的项目管理软件应用与试题及答案
- 工程项目管理利益平衡试题及答案
- 内镜洗消相关试题及答案
- 2024年中国铁路国际有限公司招聘真题
- 石油化工阀门检修及维护措施
- 2024年广西物流职业技术学院招聘教职人员笔试真题
- 2024-2025湘科版小学科学四年级下册期末考试卷及答案(三套)
- 中国企业科创力研究报告2024
- 大型海上发电用双燃料燃气轮机企业数字化转型与智慧升级战略研究报告
- 工程承包再转让合同协议
- (广东二模)2025年广东省高三高考模拟测试(二)历史试卷(含答案)
- 2025湖南建投集团春季校园招聘239人笔试参考题库附带答案详解
- 2025-2030全球冰雪产业经营效益与发展投资策略建议研究报告
评论
0/150
提交评论