1 / 37

第三章:数据类型、变量和表达式

第三章:数据类型、变量和表达式. 教学目标 掌握基本数据类型 掌握表达式 理解数据类型转换 熟悉框架( GroupBox) 控件、单选按钮和检查框. 3.1 VB .NET 数据类型. 在不同的程序设计语言中,数据类型的规定和处理方法是不同的。在开始学习如何使用 Visual Basic .NET 编码之前,需要理解所使用的数据类型。需要掌握如何用变量存储数据,如何从一种数据类型转换到另一种数据类型。. 3.1.1数据类型. 见 P28 表。. 3.1.2 理解数据类型.

nate
Download Presentation

第三章:数据类型、变量和表达式

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. 第三章:数据类型、变量和表达式 教学目标 • 掌握基本数据类型 • 掌握表达式 • 理解数据类型转换 • 熟悉框架(GroupBox)控件、单选按钮和检查框

  2. 3.1 VB .NET数据类型 在不同的程序设计语言中,数据类型的规定和处理方法是不同的。在开始学习如何使用Visual Basic .NET编码之前,需要理解所使用的数据类型。需要掌握如何用变量存储数据,如何从一种数据类型转换到另一种数据类型。

  3. 3.1.1数据类型 见P28表。

  4. 3.1.2 理解数据类型 • Boolean 变量以 16 位(2 个字节)的数值形式存储,但只能是 True 或是 False。使用关键字 True 与 False 将 Boolean 变量赋值为这两个状态中的一个。在将数值数据类型转换为 Boolean 值时,0 会转换为 False,而其他所有值都将转换为 True。在将 Boolean 值转换为数值类型时,False 将转换为 0,True 将转换为 -1。 • Byte、Integer、Long和Short均可存放一个整数,它们的取值范围不同,占有的空间大小也不一样。实际编程的时候,可根据需要选用。 • Decimal、Double和Single均存放一个不同范围的实数。 • Char 变量以无符号的 16 位(2 个字节)数字的形式存储,取值范围为 0 到 65535。每个数字代表一个 Unicode 字符。 • Date 变量以 8 个字节整数的形式存储,表示从 1 年 1 月 1 日到 9999 年 12 月 31 日的日期以及从凌晨 0:00:00 到晚上 11:59:59 的时间。Date 值必须以数字符号 (#) 括起来,格式必须为 m/d/yyyy,如 #5/31/1993#。 • String类型可以存放一个字符串。

  5. 3.2变量与常量 3.2.1声明变量 用以下方式来声明变量及类型:  Dim 变量名 As 类型 其中类型可使用表3.1中所列出的数据类型或用户自定义的类型名。例如: Dim strMyName As String Dim nAge As Integer 可以用一个声明语句声明多个同变量。例如,下面的语句声明两个整型变量A和B: Dim A, B as Integer 此外,还有其他的方法也可声明一个变量,主要用于类和模块中。

  6. 3.2.2变量的命名规则 变量名可以由使用者自己定义,但需遵循以下规则: • 必须以字母或汉字开头,不能以数字或其他字符开头。 • 变量名中其他字符可以是字母、汉字、数字或下划线组成,允许是空格、句号或其他标点符号,长度不超过255个字符(最小长度为1个字符)。 • 变量名在变量的作用范围内必须唯一(变量的作用范围将在后面讲到)。 • 不能使用Visual Basic .NET中的保留字,例如:End、Sub。

  7. 3.2.3变量的有效范围 • 根据变量声明时在程序中的位置,每个变量均有一定的有效范围。 • 变量的有效范围决定了Visual Basic .NET程序中变量的可访问性。 • 在有效范围内变量是可用的,有效范围之外,变量是无效的,对该变量的任何使用均会导致程序报错。 例如: Private Sub Button1_Click(ByVal sender As System) Dim Losers As Integer …(其它语句) End Sub 上例中,介于Dim Losers As Integer命令行与End Sub命令行之间的代码均可访问变量Losers。但就程序的其他部分而言,变量Losers就无效了。

  8. 又例如下面一段代码: If YourSalary<CERSalary Then Dim Message As String Message=”How come I get paid less but do all the work?” TextBox1.Text=Message End If • 上面的示例中,VB.NET在第二行创建了一个名为Message的变量。 • 在第二行之前,直到VB.NET看到变量的声明代码,变量Message根本不存在。 • 一旦执行到最后一行时,即End If的后面,变量Message就无效了。

  9. 3.2.4常量 常量是在程序运行中不变的量。 声明常量的语法如下: Const 常量名 [As 类型]= 表达式   其中As 类型为可选项,说明了该变量的数据类型。省略该项,数据类型由表达式决定。表达式的值即为该常量的值(表达式将在下一节讲述)。对于数值常数除了可用十进制数表示外,还可以使用十六进制数(数值前加&H)和八进制(数值前加&O)。常量名的命名规则中,其长度最长为40个字符,其他同变量命名规则。 例如: Const PI = 3.14159 ‘声明了常量PI,代表3.14159,Single型 Const MAX As Integer = &O144 ‘声明了常量MAX,代表了八进制数144,整型 Const COUNTS = 12.34R ‘声明了常量COUNTS,代表12.34,double型 注意:在12.34后面加了一个字符R来明确表示12.34这个数字作为double型看待。在程序中任何使用数字的地方均可这么作来帮助Visual Basic确定代码中的数字表式什么类型,其他可用的类型符如表。

  10. 3.3运算符与表达式 表达式由变量、常量、运算符和圆括号按一定的规则组成。要掌握表达式首先要理解运算符的使用。其次表达式计算出来的值通常要存放到变量中,这是通过赋值语句来完成的。

  11. 3.3.1赋值语句 赋值语句是任何程序设计中最基本的语句。它的作用是把右边表达式的值赋给左边的变量,Visual Basic .NET使用赋值号“=”来赋值,其语法如下: [LET]变量名=表达式 其中LET表示赋值,通常省略。表达式的计算结果类型应与变量名的类型一致,即同时为数值型或同时为字符型。当数值型具有不同的精度时,强制转换成左边的精度。 例如: Dim lngX As Long = 2000 Dim intX As Integer = 234

  12. 3.2.2运算符 与其他语言一样,Visual Basic .NET通过运算符、变量等组合成表达式,实现编程中所需的大量操作。VB.NET中的运算符分为算术运算符、字符串运算符、关系运算符和逻辑运算符等。

  13. 3.2.2.1算术运算符 见表3.3 算术运算符。 3.2.2.2字符串运算符 字符串运算符有两个:“&”、“+”,它们都是将两个字符串拼接起来。在字符串变量后使用运算符“&”时,变量与运算符“&”间应有一个空格。例如:  “高级”+“编程” ‘结果为“高级编程”’ “This is a” & “VB.NET” ‘结果为“This is a VB.NET”’ 在使用时,连接符“&”与“+”的区别是: “+”:连接符前后的表达式应均为字符串,若均为数值则进行算术加运算。若一个为字符串,另一个为数值则会出错。 “&”:连接符前后的表达式不管是字符串还是数值,进行连接操作前,系统先将表达式转换成字符串,然后再连接。 例如:  “aabbcc”+123456 ‘出错 “aabbcc” & 123456 ‘结果为:“aabbcc123456”

  14. 3.2.2.3关系运算符 关系运算符是双目运算符,作用是将两个表达式进行比较,若关系成立,则返回 True,否则返回False。表达式可以是数值型、字符型。表3.4列出Visual Basic .NET中的关系运算符。  见表3.4 Visual Basic .NET的关系运算符。 使用关系运算符时应注意以下规则: • 如果两个表达式是数值,则按其大小比较。 • 如果两个表达式是字符或字符串,则按字符的ASCII码值从左到右一一比较,即首先比较两个字符串的第1个字符,其ASCII码值大的字符串大,如果第1个字符相同,则比较第2个字符,以此类推,直到出现不同的字符为止。 • 关系运算符的优先级相同。

  15. 3.2.2.4逻辑运算符 逻辑运算符除Not是单目运算符外,其余都是双目运算符,作用是将表达式进行逻辑运算,结果是逻辑值True或False。表3.4列出VB.NET中的逻辑运算符、运算优先级等(表中T表示True,F表示False)。

  16. 3.2.2.5位运算符 当逻辑运算符运用于数值时,对两个数值表达式中位置相同的位执行按位比较具体有And(按位与)、Or(按位或)、Not(按位取反)和Xor(按位异或)4个位运算符,例如: 88 And 23 = 16 88 Or 23 = 95 88 Xor 23 = 79 Not 88 = -89

  17. 3.2.3表达式 表达式由变量、常量、运算符和圆括号按一定的规则组成。表达式通过运算后有一个结果,运算结果的类型由数据和运算符共同决定。表达式的书写规则如下: • 乘号用“*”表示,并且不能省略。例a乘以b应写成:a*b。 • 括号必须成对出现,均使用圆括号。 • 表达式从左到右在同一基准上书写,无高低、大小之分。 例如:已知数学表达式 ,写成Visual Basic .NET表达式为: ((8*x+y)-z)^(1/2)/(x-y)^3

  18. 在算术运算中,如果表达式具有不同的数据精度,则Visual Basic .NET规定运算结果的数据类型采用精度高的数据类型。即 Integer<Long<Single<Double 但当Long型数据与Single型数据运算时,结果为Double型数据。 关系运算符的优先级相同。当一个表达式中出现了多种不同类型的运算符时,不同类型的运算符优先级如下: 算术运算符>关系运算符>逻辑运算符 实际上,对于多种运算符并存的表达式,可增加圆括号,改变优先级可使表达式的层次更清晰。

  19. 3.4 类型转换 数据类型精度由低到高的排列为: Byte<Short<Integer<Long<Decimal<Single<Double 另外,Char型可转换为String型;上述所有类型均可转换为Object型。 我们可以调用System.Convert命名空间的转换函数进行类型转换。

  20. 下面是一些转换的例子: Dim intX As Integer = 423 Dim lngY As Long intY = Convert.ToInt64(intX) ‘intY = 423 在最后一条语句中,转换函数Convert.ToInt64将intX转换为Long型后赋值给intY变量。 一个丢失数据的例子如下: Dim sngX As Single = 123.74 Dim intY As Integer intY = Convert.ToInt32(sngX) ‘intX = 123 常用的转换函数见表3-6 类型转换函数。

  21. 3.5 程序的顺序结构 顺序结构是一组按书写顺序执行的语句,即执行完一条语句后依次执行下一条语句。 例如:下面的程序完成了两个数之和的计算。 • 创建一个名为sum的新的Windows 应用程序项目。 • 在Form窗体上放置三个TextBox控件,Name属性分别为TxtOp1,TxtOp2和TxtResult。Text属性为空。TxtResult的ReadOnly的属性为True。 • 再放置一个button按钮,并设置其Name属性为BtnSum,其Text属性为Show sum。双击这个按钮,打开它的Click事件处理程序,并在其中添加如下代码:

  22. Private Sub BtnSum_Click(ByVal sender As System.Object, ByVal e As _ System.EventArgs) Handles btnSum.Click Dim dblOp1 As Double Dim dblOp2 As Double Dim dblResult As Double dblOp1 = TxtOp1.Text dblOp2 = TxtOp2.Text dblResult = dblOp1 + dblOp2 TxtResult.Text = dblResult End Sub

  23. 输出结果如下: 声明三个类型为double的变量并从文本框中得到了输入,这里从文本框到double型变量做了隐式的转换。当使用者单击Show Sum按钮后,程序从代码Dim dblOp1…开始顺序执行,直到End Sub。

  24. 3.6 Visual Basic程序格式 Visual Basic编写代码也都有一定的书写规则,其主要规定如下: • Visual Basic .NET代码不区分字母的大小写 • 为了提高程序的可读性,Visual Basic .NET对用户程序代码进行自动转换: • 对于Visual Basic中的关键字,首字母总被转换成大写,其余字母被转换成小写; • 若关键字由多个英文单词组成,它会将每个单词首字母转换成大写; • 对于用户自定义的变量、过程名,VB.NET以第一次定义的为准,以后输入的自动向首次定义的转换。 • 语句书写自由 • 在同一行上可以书写多个语句,语句间用冒号“:”分隔; • 单行语句可分若干行书写,在本行后加入续行符(空格和下划线“_”); • 一行允许最多达255个字符。 • 注释有利于程序的维护和调试 • 注释以Rem开头,也可用撇号“’”引导注释内容,用撇号引导的注释可以直接出现在语句后面。 • 亦可以使用“编辑”工具栏的“设置注释块”、“解除注释块”按钮,使选中的若干行语句(或文字)添加注释或取消注释。若编辑工具栏没有在窗口上显示,可以选择“视图”菜单的“工具栏”子菜单,然后选择“编辑”命令即可。

  25. 3.7 GroupBox、Radio Button、CheckBox控件 RadioButton、CheckBox和GroupBox控件

  26. 3.7.1 Radio Button RadioButton(单选按钮)控件是用来让用户在一组选项中选定一项且只能选定一项。

  27. RadioButton有许多属性,其中最常用的有: • Text属性:设定RadioButton旁边的文本内容。 • CheckAlign属性:CheckAlign属性设定控件按钮与文本的位置关系 • Checked属性:由Checked属性设定RadioButton的状态。 • True:RadioButton被选定。 • False:RadioButton未被选定,缺省设置。

  28. 3.7.2 CheckBox CheckBox(复选框)控件是让用户在一组选项中选定一项或选定多项。 • CheckBox的属性中也有Text属性、CheckAlign属性和Name属性等,这些属性的用法几乎每个控件都大同小异。CkeckBox最重要的属性是Checked属性。通过Checked属性可以检查或设定CheckBox是否被选中: Checked = True, 被选中 Checked = False,未被选中 • CheckBox中还有一个CheckState属性用来指示CheckBox目前的状态: • CheckState = Checked,被选中状态 • CheckState = UnChecked,未被选中状态 • CheckState = Indeterminate,不可用状态(当ThreeState 属性设置为 true时有效)

  29. 3.7.3 框架GroupBox控件的使用 • RadioButton控件在一组中只能选定一项,怎样对RadioButton控件分组呢?其中一个方法就是利用GroupBox控件。可以先将一个GroupBox控件放置在窗体上,然后将RadioButton控件放在GroupBox控件即可。在一个GroupBox控件中的RadioButton控件自动成为一组。另外,还可以设定GroupBox的Text属性,对分组做一个说明。 • CheckBox也可以放在一个GroupBox控件中,但CheckBox并没有类似RadioButton分组的类似概念。将CheckBox放入一个GroupBox的作用主要是说明和装饰作用。

  30. 3.7.4 例子 在图3-2的基础上再增加一个按钮,并且为这个按钮的Click事件编写代码,通过一个消息框(MessageBox)来显示目前的选择情况。代码如下:

  31. If RbtnMan.Checked = True Then strTemp = "男" End If If RbtnWoman.Checked = True Then strTemp = "女" End If strInfo = strInfo & strTemp & " 其他选择: " If ChkboxClassLeader.Checked = True Then strInfo = strInfo & "班干部 " End If If ChkboxLeader.Checked = True Then strInfo = strInfo & "学生会干部 " End If If ChkboxAssn.Checked = True Then strInfo = strInfo & "社团成员 " End If MessageBox.Show(strInfo) End Sub Private Sub BtnShow_Click(ByVal sender As System.Object, _ ByVal e As System.EventArgs) Handles BtnShow.Click Dim strInfo As String Dim strTemp As String strInfo = "奖学金的选择情况: " If RbtnBursary1.Checked = True Then strTemp = "一等奖" End If If RbtnBursary2.Checked = True Then strTemp = "二等奖" End If If RbtnBursary3.Checked = True Then strTemp = "三等奖" End If strInfo = strInfo & strTemp & " 性别选择: "

  32. 通过IF语句(下一章详细讲述)来分别判断每个RadioButton和CheckBox的Cheched属性是否为True。若是,则将相关的信息加入到strInfo中。最后,利用MessageBox将strInfo中的信息显示出来。在程序运行前,通过属性窗口将“三等奖”和“男”的Checked属性设置为True,使他们成为缺省选项。

  33. 程序运行结果如下: • 程序运行后,用户进行了选择,注意RadioButton的互斥性 • 按下Show按钮后程序的显示结果:

  34. 补充阅读3.8 面向对象的程序设计 • OOP最关键的一点就是使用可重用对象来构建程序。面向对象程序设计方法认为,客观世界是由各种各样的实体组成的,这些实体就是面向对象方法中的对象。一般的认为,对象是包含现实世界物体特征的抽象实体,反映了系统为之保存信息和与之交互的能力。 • 每个对象有各自属性和方法,整个程序是由一系列相互作用的对象构成的,对象之间的交互通过发送消息来实现。对象可视为一个单元的代码和数据的组合。对象可以是一段应用程序,如控件或窗体。整个应用程序也可以是一个对象。 • 属性是对象的特性,它们定义对象的特征之一(如大小、颜色或屏幕位置),或者定义对象行为的某一方面(如是否启用或可见)。若要更改对象的特征,可更改其相应属性的值。而方法则是对象的一组函数,主要用来对象的数据进行操作。在程序中,通过对象名加上一个句号后跟属性或方法的形式来访问对象的属性或方法。 • 事实上,在Visual Basic .NET中,每一个变量,每一个控件都是一个对象。

  35. 3.9良好的编程风格 建议: • 在程序中最好每行只包括一个语句 • 每次只声明一个变量 • 变量和控件名尽可能起的有意义,容易记忆和理解并且风格始终保持一致。可以使用有意义的前缀起名。 • 注意使用语句的缩格与按层次对齐,采用锯齿状的书写方式。 • 在必要的地方加上注释,以提高程序的可读性。 • 要编写出易读的代码,另一个重要的方面是留出大量的空白。以告诉读者每一段代码都是一个工作单元。 • 模仿本书的例子或其它好的编程风格的例子。

  36. 小结 • 掌握基本数据类型(Integer、Double、string等) • 掌握表达式(与非一般表达式的区别:*、/、^等) • 理解数据类型转换(不同类型之间的转换) • GroupBox、Radio Button、CheckBox控件的使用

  37. 作业 P42: 4、7

More Related