第2章VBNET编程基础

上传人:仙*** 文档编号:34088178 上传时间:2021-10-20 格式:PPT 页数:92 大小:747.52KB
收藏 版权申诉 举报 下载
第2章VBNET编程基础_第1页
第1页 / 共92页
第2章VBNET编程基础_第2页
第2页 / 共92页
第2章VBNET编程基础_第3页
第3页 / 共92页
资源描述:

《第2章VBNET编程基础》由会员分享,可在线阅读,更多相关《第2章VBNET编程基础(92页珍藏版)》请在装配图网上搜索。

1、VB.NET程序设计第2章 VB.NET编程基础东北大学软件学院2013-2014第一学期主要内容 2.1 数据类型 2.2 常量与变量 2.3 运算符 2.4 数组 2.5 基本语法和语句 2.6 过程 2.7 字符串操作2.1数据类型基本数据类型基本数据类型对对象象数数据据类类型型自自定定义义数数据据类类型型字字符符型型字字符符串串型型字字节节型型短短整整型型整整型型长长整整型型单单精精度度型型双双精精度度型型小小数数型型布布尔尔型型日日期期型型 字符型(字符型(Char)Nothing(默认值)(默认值) 字符串型(字符串型(String)Nothing(默认值)(默认值)0 06563

2、5656352 2字字节节0 065635656352 2字字节节字符字符个数个数Dim a As CharDim a As Chara=“b”a=“b”a=ChrWa=ChrW(9898)Dim a As StringDim a As Stringa=“b”a=“b”a=“”a=“”试一试:假设有试一试:假设有A A和和B B两个变量,分别为字符型和字符两个变量,分别为字符型和字符串型的变量,则通过如下的赋值语句,其最终结果是串型的变量,则通过如下的赋值语句,其最终结果是什么?什么?A=“Hello”A=“Hello”B=“Hello”B=“Hello”A=“H”A=“H”B=“Hello”

3、B=“Hello”字节型(字节型(ByteByte)短整型(短整型(ShortShort)整型(整型(IntegerInteger)长整型(长整型(LongLong)单精度型(单精度型(SingleSingle)双精度型(双精度型(DoubleDouble)小数型(小数型(DecimalDecimal)1个字节。0(默认值)255。2个字节。-3276832767。0(默认值)。4个字节。-21474836482147483647。0(默认值)。8个字节。0(默认值)。4个字节。-3.4028231038-1.40129810-45(负数)1.40129810-453.4028231038(正

4、数)0.0(默认值)。8个字节。0.0(默认值)。16个字节。0D(默认值)。 判定下列变量的赋值是否正确?判定下列变量的赋值是否正确?A=20.1 A=20.1 (A A为单精度型变量)为单精度型变量)B=3.5E39 B=3.5E39 (B B为单精度型变量)为单精度型变量)C=256 C=256 (C C为字节型变量)为字节型变量)D=256 D=256 (D D为整型变量)为整型变量) 布尔型(布尔型(BooleanBoolean)Nothing(默认值)(默认值)日期型(日期型(DateDate)8 8个字节。个字节。范围:公元范围:公元100100年年1 1月月1 1日日公元公元9

5、9999999年年1212月月3131日。日。#12#12:0000:00AM# 00AM# (默认值)。(默认值)。2 2字字节节TrueTrue(-1-1或非或非0 0)FalseFalse(0 0)日期:#月/日/年 # 或 #月-日-年#时间:#时:分:秒 AM # 或 #时:分:秒 PM #日期时间:#月/日/年 时:分:秒 AM # 或 #月/日/年时:分:秒 PM #月-日-年 时:分:秒 AM # 或 #月-日-年时:分:秒 PM # 对象型(对象型(Object)4字节字节+数据类型所占空间。数据类型所占空间。可以保存任何数据类型。可以保存任何数据类型。Nothing(默认值

6、)(默认值)Dim x As IntegerDim yDim z As LongY为对象型变量结构结构Private|PublicStructure 结构名 Dim 字段名1 As 数据类型1 Dim 字段名2 As 数据类型2 Dim 字段名n As 数据类型nEnd Structure枚枚举举Private|PublicEnum 枚举类型名 As 数据类型 枚举成员名1 =常量表达式1 枚举成员名2 =常量表达式1 枚举成员名n =常量表达式nEnd Enum 定义一个包含学号、姓名和性别字段定义一个包含学号、姓名和性别字段的结构。的结构。Structure StudentStructur

7、e Student Dim StuNo As StringDim StuNo As String Dim StuName As StringDim StuName As String Dim StuSex As StringDim StuSex As StringEnd StructureEnd StructureDim Stu As StudentDim Stu As Student Stu.No=“20070001”Stu.No=“20070001” Stu.Name=“ Stu.Name=“张张三三” ” Stu.Sex=“Stu.Sex=“男男” ” 定义一个包含红、绿、蓝三种颜色的定

8、义一个包含红、绿、蓝三种颜色的枚举。枚举。Enum MyColorEnum MyColor Red Red=0 Red Red=0 Green Green=1 Green Green=1 Blue Blue=2 Blue Blue=2End EnumEnd EnumEnum MyColorEnum MyColor Red=2 Red=2 Red=2 Red=2 Green Green=3 Green Green=3 Blue=5 Blue=5 Blue=5 Blue=5End EnumEnd EnumDim Col As MyColorDim Col As MyColor Col=MyColo

9、r.GreenCol=MyColor.Green2.2 常量与变量变量的命名规则变量的命名规则首字符其他字符英文字母汉字数字下划线空格关键字其他字符255255个个字符字符下列哪些变量名是正确的?1. good luck2. Seven_eleven3. 7_eleven4. B&Q5. goodLuck 6. As7. _score8. _ 2,5,7DimDim变量名变量名AsAs数据类型数据类型合法变量名13种数据类型之一 Dim Age,Years As Integer Dim Score As Single声明变量变量的有效范围变量的有效范围 决定了Visual Basic .NET

10、程序中变量的可访问性。 在有效范围内变量是可用的,有效范围之外,变量是无效的,对该变量的任何使用均会导致程序报错。Dim y As IntegerFor y = 1 To 10 x = 10 Dim x As Integer x = 20Next yx = 30错误错误:x 未声明未声明错误错误:x已超出有效范围已超出有效范围 常量常量是在程序运行中不变的量是在程序运行中不变的量Const Const 常量名常量名 As As 类型类型 表达式表达式常量名的命名规则中,其长度最长为常量名的命名规则中,其长度最长为4040个字符,个字符,其他同变量命名规则。其他同变量命名规则。 例如:例如:Co

11、nst PI 3.14159声明了常量声明了常量PI,代表,代表3.14159,Single型型Const MAX As Integer O144声明了常量声明了常量MAX,代表了八进制数,代表了八进制数144,整型,整型Const COUNTS 12.34R声明了常量声明了常量COUNTS,代表,代表12.34,double型型2.3 运算符算术运算符算术运算符字符串连接符字符串连接符关系运算符关系运算符逻辑运算符逻辑运算符-(负号) *,/ Mod +、-&=、=、LikeLike、Is赋值运算符赋值运算符Not And Or Xor AndAlso OrElse=、+=、-=、*=、/=

12、、 =、=LikeLike:按样式比较字符串:按样式比较字符串 # 单个数字 ?单个字符 * 任意字符 charlist 字符列表中的单个字符 !charlist非字符列表中的单个字符LikeLike:按样式比较字符串:按样式比较字符串 “123” Like “#23” “Hello” Like “H?llo” “Hello” Like “H*” “X” Like “D-Z” “X” Like “!D-Z”TrueTrueFalseFalse下列语句执行后x的值应该是多少? X=7 + 3 * 3 2 1 X = 10 X=2 Mod 2 + 2 * 2 2 / 2 X = 3 X=(3 *

13、9 * (3 + (9 * 3 / (3) X = 324哪个方程式是正确的? 假设 z=9e7-mA. z= 9*(e7-m)B. z=( 9*e)7-mC. z= 9*(e7)-mD. z= 9*e(7-m)下列 “&”运用正确的是? A. “Hello” & “World!” B. 213 & “213” C. FirstName & LastName (假设两个变量均为字符串变量) D. a&b (假设a,b均为字符串变量)下列表达式的值是多少? 假设a=-1,b=-2,c=3A. a And b And cB. Not a And Not b And Not c C. a Or b

14、And cD. a Xor b Xor c True: A, C, D False: B2.4 数组数组的逻辑表现形式-10036-842137a(0)a(1)a(2)a(3)a(4)a(5)数组名称数组名称数组中元素的索数组中元素的索引(或下标)引(或下标)下面的说法正确吗? 如果要求数组a前两个元素的和,并把结果赋值给Sum,可以用下面的方法获得: Sum=a(0)+a(1) “数组的第i个元素”与“数组元素i”的含义是相同的。正正 确确错错 误误 数组的声明数组的声明Dim 数组数组名名(下下标标1,下下标标2) As 类类型型Dim 数组数组名名 As 类类型型()数组数组名名=New

15、 类类型(下型(下标标) Dim 数数组组名名() As 类类型型数组数组名名=New 类类型(下型(下标标)声明具有声明具有10个整数元素的数组个整数元素的数组A Dim A(9) As Integer Dim A As Integer() A=New Integer(9) Dim A() As Integer=New Integer(9) Dim A As Integer()=New Integer(9)数组的初始化数组的初始化 声明同时初始化声明同时初始化Dim Score() As Single=80.1,90,68Dim b(,) As Integer=1,1,2,2 先声明后赋值先

16、声明后赋值 Score(0)=80.1 : Score(1)=90 : Score(2)=68 b(0,0)=1 : b(0,1)=1 : b(1,0)=2: b(1,1)=2示例 某商场随机向10名顾客询问该商场的服务质量,让他们按照15的分级进行评价。其中1表示“非常不满意”,5表示“非常满意”。现要求将10个答案保存在一个整型数组中,并确定每种评价的出现频率。Dim Responses As Integer() = New Integer() 2, 3, 1, 5, 4, 5, 3, 4, 5, 5Dim frequency(5) As IntegerDim s As Strings =

17、 等级 频率For answer As Integer = 0 To Responses.GetUpperBound(0) frequency(Responses(answer) += 1NextFor answer As Integer = 1 To 5 s &= vbCrLf & answer.ToString & & frequency(answer).ToStringNextMessageBox.Show(s)具体代码如何获取数组的长度? 使用Length方法 例如,数组a的长度可用下面的表达式确定 a.Length如何对数组进行排序? 使用Array类的Sort方法 Array类位于

18、System名字空间中Imports System升序排列Array.Sort(数组名)Imports System降序排列Array.Sort(数组名)Array.Reverse(数组名)升序排序降序排序二分搜索法:BinarySearch 适用范围 大型数组 数组已排序 主要参数 参数1:数组名称 参数2:搜索键值 返回结果 找到:返回该值的索引值 未找到:返回一个负值Array.BinarySearch(a, searchKey)动态数组 ReDim语句可以在执行时修改一个数组所包含的元素数量。 但是不能修改数组的维数。 也不能修改数组的类型。 Preserve关键字可以用来保留数组中的

19、原值,缺省该关键字,数组中的值为该类型的缺省值。1234a(0) a(1) a(2) a(3)00000a(0)a(1)a(2)a(3)a(4)12340a(0) a(1) a(2) a(3) a(4)ReDim a(4)ReDim Preserve a(4)1234a(0) a(1) a(2) a(3)1234a(0) a(1) a(2) a(3)0004a(0) a(1) a(2) a(3)ReDim a(2)ReDim Preserve a(2)2.5 基本语法和语句 基基本本语语句句赋值语句条件语句IfThenElseIfThenElseIfSelectCase循环语句ForNextD

20、o While|UntilLoopDoLoop While|UntilIfThenElse语句语句 If (条件) Then Then语句块Else Else语句块End If If Score60 ThenMessageBox.Show(“合格”)Else MessageBox.Show(“不合格”)End IfIfThenElseIf与与Select Case语句语句 If (条件1) Then Then 语句块1ElseIf (条件2)Then ElseIf 语句块2ElseIf (条件n)Then ElseIf 语句块nElse Else 语句块End If Select Case 表

21、达式 Case 值1 满足值1的语句块 Case 值2 满足值2的语句块 Case 值n 满足值n的语句块 Case Else 不满足以上值的语句块 End Select If Score = 90 Then Grade = A ElseIf Score = 80 And Score = 70 And Score = 60 And Score = 90 Grade = A Case 80 To 89 Grade = B Case 70 To 79 Grade = C Case 60 To 69 Grade = D Case Else Grade = E End Select练一练 分别使用If

22、.then.else语句和Select Case 结构将一年中的12个月份,分成四个季节输出ForNext语句语句 For 计数器=初始值 To 终值Step 步长 语句块 Exit For 语句块 Next 计数器 Sum=0 For i=1 To 10 Sum+=i NextFor EachNext语句 For Each 变量名 In 数组名语句块 Exit For 语句块 Next For Each number In aIf number=90 Then Messagebox.Show(“找到了!”) End If Next练一练 分别使用For.Next语句和For Each.Nex

23、t语句对具有10个数组元素的整形数组进行求和Do While|UntilLoop与与DoLoop While|Until语句语句Do While|Until(条件) 语句块 Exit Do 语句块LoopDo 语句块 Exit Do 语句块Loop While|Until(条件)Do While i10 Sum+=i i+=1LoopDo Sum+=i i+=1Loop While i10改错(1) 假设a被初始化为32。下列语句对0到32的值进行求和While a =0 sum += aEnd WhileWhile a =0 sum += a a -=1End While改错(2) 打印1到

24、8的平方Dim number As Integer = 1Do While number 8 Console.WrithLine(number2)While EndDim number As Integer = 1Do While number 8 Console.WrithLine(number2) number += 1While End练一练 分别使用Do While|Until语句和Do.While|Until语句对具有10个数组元素的整形数组进行求和2.6 过程 在在Visual Basic中,中,通用过程分为通用过程分为两类两类: 子程序过程(子程序过程(Sub过程)过程) 函数过

25、程(函数过程(Function过程)过程) Sub过程的定义Shared Private Public Sub 过程名(参数表) 语句序列End Sub Sub前面的Shared、Private和Public指定过程或其中定义的变量的有效范围 Sub过程定义以Sub(除前面的Shared、Private和Public外)开始,以End Sub结束,中间是描述过程功能的语句序列,称为过程体。 过程名与变量的命名规则相同 参数表指定在调用该过程时,应该传递的参数的个数和类型。每个参数项的形式如下: ByVal | ByRef 参数名( ) As 类型 End Sub表明过程的结束。 Sub过程不能

26、嵌套Sub Multiple(ByVal x As Integer,ByVal y As Integer) Messagebox.Show(x*y)End SubSub 过过程程1()() Sub 过过程程2()() EndSubEnd Sub Function过程的定义 Shared Private Public Function 过程名 (参数表)As 类型名 语句序列End Function Function过程以Function(除前面的Shared、Private和Public外)开始,以End Function结束,中间是描述过程功能的语句序列,称为过程体或函数体。 过程体中至少有

27、一条Return语句,形式为 Return 表达式 当调用该过程时,过程的返回值即此表达式的值。 “As 类型名”指定Function过程返回值的数据类型。 其他部分同Sub过程的定义。Function Multiple(ByVal x As Integer,ByVal y As Integer)As Integer Return x*yEnd SubFunction Multiple(ByVal x As Integer,ByVal y As Integer)As Integer Mutiple= x*yEnd Sub 调用Sub过程,即执行该过程中的代码。调用Sub过程的形式如下:过程名(

28、实际参数表)其功能是:运行该过程名对应的过程。 由于Function过程返回一个值,可以像其它函数一样来调用。一般它作为表达式或表达式的一部分出现。其在表达式中出现的形式为:变量=过程名(参数表) Public Function Sum(ByVal a As Integer, ByVal b As Integer) As Integer Sum = a + bEnd FunctionPublic Sub Sum(ByVal a As Integer, ByVal b As Integer, ByRef c _As Integer) c = a + bEnd Sub调用语句:C=Sum(3,4)

29、调用语句:Sum(3,4,C)练一练 求两个整数的最大值。要求分别用过程和函数编写,这两个数由两个文本框输入,单机按钮后求最大值。方法的重载 同一个名称创建多个方法,但是使用不同的签名 签名就是不同数量和类型的形参,或者是不同的形参顺序 适用场合:创建几个具有相同名称并在不同类型的数据上执行类似任务的方法Function Example1(ByVal a As Double, ByVal b As Double) As IntegerFunction Example1(ByVal a As Double, ByVal b As Double) As Double下面的重载方法的声明是否正确?形

30、参列表相同,但返回值的类型不同,会产生语法错误形参列表相同,但返回值的类型不同,会产生语法错误 Function Example2(ByVal a As Integer, ByVal b As Double) As Integer Function Example2(ByVal a As Double, ByVal b As Integer) As Integer Function Example3(ByVal a As Integer) As Integer Function Example3(ByVal a As Integer, ByVal b As Integer) As Intege

31、r形参的数量或顺序不同OK形参的数量相同但类型不同 Function Example2(ByVal a As Integer, ByVal b As Integer) As Integer Function Example2(ByVal a As Double, ByVal b As Double) As Integer Function Example2(ByVal a As Integer, ByVal b As Integer) As Integer Function Example2(ByVal a As Double, ByVal b As Double) As DoubleOK可选

32、参数 运行调用方法传递不同数量的实参 一般情况下,灵活性较重载方法弱些 可选参数可为多个 可选参数必须在非可选参数的右侧 用关键字“Optional”修饰 可选参数必须有默认值ByVal value1 As 类型, , ByVal valuen As 类型, _Optional ByVal ovalue1 As 类型=默认值1, , _Optional ByVal ovaluen As 类型=默认值n语法格式举例 Sub Example(ByVal value1 As Boolean, _ Optional ByVal value2 As Integer=0) 下列调用正确的是? A. Exa

33、mple() B. Example(False) C. Example(True, 3) 顾客在某商场购买商品是,通常不打折,但是在特殊的时间可以打不同的折扣,具体的折扣可以指定,试利用可选参数进行实现。具体代码可变长度的形参列表 使用关键字“ParamArray”来创建接受可变数量的参数 “ParamArray”关键字只能修饰一维数组参数 “ParamArray”修饰的参数必须放在参数列表的最后 “ParamArray”只能用ByVal修饰练一练 分别用函数和子过程来计算可变长度的数组元素的和 求1,2,3,4,5的和 求1,2,3,4,5,6,7,8,9,10的和2.7 字符串操作如何比较

34、两个字符串? 判断两字符串是否相等(True或False) 假设有两个字符串String1和String2并且都已赋值 String1 = String2 String1.Equals(String2) String2.Equals(String1)如何比较两个字符串? CompareTo方法可以对字符串进行比较 0。两字符串相等 -1。调用字符串小于参数字符串 1。调用字符串大于参数字符串判断返回值 String1=“Hello” String2=“hello” String1.CompareTo(String2) String2.CompareTo(String1) 1-1如何在字符串中查

35、找字符和子字符串? 使用IndexOf方法和LastIndexOf方法*IndexOf (查找首次出现的位置)LastIndexOf查找最后一次出现的位置含一个参数 一个字符或子字符串 用于查找一个字符或子字符串中首次出现的索引值 返回值: 字符串中的索引位置值。找到 -1。未找到含两个参数 第一个参数:要搜索的字符或子字符串 第二个参数:搜索起始位置/最高索引位置 返回值: 字符串中的索引位置值。找到 -1。未找到含三个参数 第一个参数:要搜索的字符或子字符串 第二个参数:搜索起始位置/最高索引位置 第三个参数:搜索的字符数量 返回值: 字符串中的索引位置值。找到 -1。未找到如何从字符串中

36、抽取子字符串? SubString方法。 通过复制一个现有字符串的一部分来创建一个新的字符串 返回值:一个新的字符串一个参数 SubString(整型参数) 整型参数:复制的起始索引值HelloWorldS1S1.SubString(6)dlroW两个参数 第一个参数:复制的起始索引值 第二个参数:子串的长度HelloWorldS1S1.SubString(6,5)dlroW连接字符串的方法 Concat方法用于连接两个字符串 返回值:一个新的字符串。包含了两个源字符串中的所有字符 String.Concat(字符串1,字符串2)HelloWorldString1String2HelloWorldString.Concat(String1,String2)

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

copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!