《第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,65635,2字节,0,65635,2字节,字符个数,Dim a As Char a=“b” a=ChrW(98),Dim a As String a=“b” a=“”,试一试:假设有A和B两个变量,分别为字符型和字符串型的变量,则通过如下的赋值语句
2、,其最终结果是什么?,A=“Hello” B=“Hello”,A=“H” B=“Hello”,字节型(Byte),短整型(Short),整型(Integer),长整型(Long),单精度型(Single),双精度型(Double),小数型(Decimal),1个字节。 0(默认值)255。,2个字节。 -3276832767。 0(默认值)。,4个字节。 -21474836482147483647。 0(默认值)。,8个字节。 0(默认值)。,4个字节。 -3.4028231038-1.40129810-45(负数) 1.40129810-453.4028231038(正数) 0.0(默认值)
3、。,8个字节。 0.0(默认值)。,16个字节。 0D(默认值)。,判定下列变量的赋值是否正确? A=20.1 (A为单精度型变量) B=3.5E39 (B为单精度型变量) C=256 (C为字节型变量) D=256 (D为整型变量),布尔型(Boolean) Nothing(默认值) 日期型(Date) 8个字节。 范围:公元100年1月1日公元9999年12月31日。 #12:00:00AM# (默认值)。,2字节,True(-1或非0),False(0),日期: #月/日/年 # 或 #月-日-年#,时间: #时:分:秒 AM # 或 #时:分:秒 PM #,日期时间: #月/日/年 时
4、:分:秒 AM # 或 #月/日/年时:分:秒 PM # #月-日-年 时:分:秒 AM # 或 #月-日-年时:分:秒 PM #,对象型(Object) 4字节+数据类型所占空间。 可以保存任何数据类型。 Nothing(默认值),Dim x As Integer Dim y Dim z As Long,Y为对象型变量,结构 Private|PublicStructure 结构名 Dim 字段名1 As 数据类型1 Dim 字段名2 As 数据类型2 Dim 字段名n As 数据类型n End Structure,枚举 Private|PublicEnum 枚举类型名 As 数据类型 枚举成
5、员名1 =常量表达式1 枚举成员名2 =常量表达式1 枚举成员名n =常量表达式n End Enum,定义一个包含学号、姓名和性别字段的结构。,Structure Student Dim StuNo As String Dim StuName As String Dim StuSex As String End Structure,Dim Stu As Student Stu.No=“20070001” Stu.Name=“张三” Stu.Sex=“男”,定义一个包含红、绿、蓝三种颜色的枚举。,Enum MyColor Red Red=0 Green Green=1 Blue Blue=2 E
6、nd Enum,Enum MyColor Red=2 Red=2 Green Green=3 Blue=5 Blue=5 End Enum,Dim Col As MyColor Col=MyColor.Green,2.2 常量与变量,变量的命名规则,首字符,其他字符,英文字母,汉字,数字,下划线,空格,关键字,其他字符,255个字符,下列哪些变量名是正确的?,1. good luck 2. Seven_eleven 3. 7_eleven 4. B&Q 5. goodLuck 6. As 7. _score 8. _,2,5,7,Dim,变量名,As,数据类型,合法变量名,13种数据类型之一,
7、Dim Age,Years As Integer Dim Score As Single,声明变量,变量的有效范围,决定了Visual Basic .NET程序中变量的可访问性。 在有效范围内变量是可用的,有效范围之外,变量是无效的,对该变量的任何使用均会导致程序报错。,Dim y As Integer For y = 1 To 10 x = 10 Dim x As Integer x = 20 Next y x = 30,错误:x 未声明,错误:x已超出有效范围,常量是在程序运行中不变的量 Const 常量名 As 类型 表达式 常量名的命名规则中,其长度最长为40个字符,其他同变量命名规则
8、。 例如: Const 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 +、-,&,=、=、Like、Is,赋值运算符,Not And Or Xor AndAlso OrElse,=、+=、-=、*=、/=、 =、=,Like:按样式比较字符串,# 单个数字 ?单个字符 * 任意字符
9、charlist 字符列表中的单个字符 !charlist非字符列表中的单个字符,Like:按样式比较字符串,“123” Like “#23” “Hello” Like “H?llo” “Hello” Like “H*” “X” Like “D-Z” “X” Like “!D-Z”,True,False,下列语句执行后x的值应该是多少?,X=7 + 3 * 3 2 1 X = 10 X=2 Mod 2 + 2 * 2 2 / 2 X = 3 X=(3 * 9 * (3 + (9 * 3 / (3) X = 324,哪个方程式是正确的?,假设 z=9e7-m A. z= 9*(e7-m) B.
10、z=( 9*e)7-m C. z= 9*(e7)-m D. z= 9*e(7-m),下列 “&”运用正确的是?,A. “Hello” & “World!” B. 213 & “213” C. FirstName & LastName (假设两个变量均为字符串变量) D. a&b (假设a,b均为字符串变量),下列表达式的值是多少?,假设a=-1,b=-2,c=3 A. a And b And c B. Not a And Not b And Not c C. a Or b And c D. a Xor b Xor c True: A, C, D False: B,2.4 数组,数组的逻辑表现形
11、式,a(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 类型(下标) ,Dim 数组名() As 类型 数组名=New 类型(下标),声明具有10个整数元素的数组A,Dim A(9) As Integer Dim A As Integer() A=New Integer(9) Dim A()
12、 As Integer=New Integer(9) Dim A As Integer()=New Integer(9),数组的初始化,声明同时初始化 Dim Score() As Single=80.1,90,68 Dim b(,) As Integer=1,1,2,2 先声明后赋值 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个答案保
13、存在一个整型数组中,并确定每种评价的出现频率。,Dim Responses As Integer() = New Integer() 2, 3, 1, 5, 4, 5, 3, 4, 5, 5 Dim frequency(5) As Integer Dim s As String s = 等级 频率 For answer As Integer = 0 To Responses.GetUpperBound(0) frequency(Responses(answer) += 1 Next For answer As Integer = 1 To 5 s &= vbCrLf & answer.ToSt
14、ring & & frequency(answer).ToString Next MessageBox.Show(s),具体代码,如何获取数组的长度?,使用Length方法 例如,数组a的长度可用下面的表达式确定 a.Length,如何对数组进行排序?,使用Array类的Sort方法 Array类位于System名字空间中,Imports System 升序排列 Array.Sort(数组名) ,Imports System 降序排列 Array.Sort(数组名) Array.Reverse(数组名) ,升序排序,降序排序,二分搜索法:BinarySearch,适用范围 大型数组 数组已排序
15、 主要参数 参数1:数组名称 参数2:搜索键值 返回结果 找到:返回该值的索引值 未找到:返回一个负值,Array.BinarySearch(a, searchKey),动态数组,ReDim语句可以在执行时修改一个数组所包含的元素数量。 但是不能修改数组的维数。 也不能修改数组的类型。 Preserve关键字可以用来保留数组中的原值,缺省该关键字,数组中的值为该类型的缺省值。,ReDim a(4),ReDim Preserve a(4),ReDim a(2),ReDim Preserve a(2),2.5 基本语法和语句,IfThenElse语句,If (条件) Then Then语句块 El
16、se Else语句块 End If,If Score60 Then MessageBox.Show(“合格”) Else MessageBox.Show(“不合格”) End If,IfThenElseIf与Select Case语句,If (条件1) Then Then 语句块1 ElseIf (条件2)Then ElseIf 语句块2 ElseIf (条件n)Then ElseIf 语句块n Else Else 语句块 End If,Select Case 表达式 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 = 69