410 likes | 619 Views
复习回顾:. IDE 的组成部分 定制自己的 IDE 环境 Visual Basic.NET 代码编辑器的特点 简单 Visual Basic.NET 程序的调试. 第三章: Visual Basic.NET 的语法基础. 本章知识点: 语法基础 结构化控制语句 过程与函数. 3-1 语法基础. 本节包含以下六个内容:. 3-1-1 数据类型 3-1-2 数据类型转换 3-1-3 变量 3-1-4 常量 3-1-5 表达式 3-1-6 数组. 3-1-1 数据类型. 1、整型(9种).
E N D
复习回顾: • IDE的组成部分 • 定制自己的 IDE环境 • Visual Basic.NET代码编辑器的特点 • 简单Visual Basic.NET程序的调试
第三章: Visual Basic.NET的语法基础 • 本章知识点: • 语法基础 • 结构化控制语句 • 过程与函数
3-1 语法基础 本节包含以下六个内容: • 3-1-1 数据类型 • 3-1-2 数据类型转换 • 3-1-3 变量 • 3-1-4 常量 • 3-1-5 表达式 • 3-1-6 数组
3-1-1 数据类型 1、整型(9种)
3-1-1 数据类型 2、实型(3种) 1) 单精度实型(single): 4字节 2)双精度实型(double): 8字节 3)十进制型(decimal):16字节 3、字符型(char):2字节 4、字符串型(string) 5、布尔型(boolean):1字节 6、字节型(byte):1字节的无符号整数 7、日期型(date):8字节 从公元元年的 0:00:00 到9999 年12月31日的 23:59:59 8、对象型(object) 9、枚举型(enum)-P36 10、结构型(structure)
例如: 对于一个学生的“学号”、“姓名”、“性别”、“年龄”、“入学成绩”等数据,为了处理数据的方便,常常需要把这些数据定义成一个新的结构类型。 Structure Student Xh As String Xm As String Xb As String Nl As Integer Score As Single End Structure
课堂练习 为下列数据选择合适的数据类型 • 地址 • 贷款数量 • 电话号码 • 身份证号码 • 学号 • 出生日期
3-1-2 数据类型转换 • 显式转换 通过转换函数来进行的类型转换。 • 隐式转换 在赋值语句中,根据需要自动进行的转换。
转换函数 VB.NET提供了几种转换函数,可用来将值转换成特定数据类型。P38 转换为 String 型值"1234" Integer 型值1234 CStr Integer 型值568 Double 型值567.9894 CInt Date 型值#2/12/1992# String 型值"February 12, 1992" CDate
隐式数据转换 • 特点: 数据类型自动转换,代码中不需要特定的转换函数 • 隐式数据转换示例: Dim sequence As short Dim number As Integer ' ... sequence = 1234 number = sequence ' sequence隐性转换为Integer • 隐式数据转换的缺点: • 可能产生不可预料的结果 • 代码运行速度慢 • 说明: Option Strict On 不允许任何隐式的由高到低的类型转换
3-1-3 变量 定义及命名变量 声明变量 变量的赋值 变量的作用域与生存期 内 容
变量的定义及命名 • 定义:变量是在程序设计中其值允许改变的量。 • 变量命名规则: • 每个变量名都必须以字母、汉字或下划线“_”开头 • 不能使用空格或标点符号 • 有效长度不能超过255个字符 • 说明: • VB中不区分变量名的大小写. • 不能使用关键字作为变量名,如 Integer 或 Date • 在同一作用域中,不能有同名变量。 • 为了增加程序的可读性,可在变量名前加一个缩写的前缀来表明该变量的数据类型。
课堂练习 判断下列哪些为合法变量 • strAbc • Inta • dblx • Sngb • IntSum • Str姓名 • 2X • Integer • ab,c • v[1]
声明变量 • 语法 • Dim 变量名 As 数据类型[=初始值] 示例: Dim intnumber As Integer=5 Dim sngsquareAs Single Dim struser As String 说明: 可以使用Option Explicit选项来设置是否可对变量进行隐式的声明。
在声明变量的同时给变量赋值 Dim birthday As Date = #3/9/1974# • 在声明变量之后单独用赋值语句给变量赋值 Dim birthday As Date birthday = #3/9/1974# 变量的赋值
块 过程 模块, 类, 或结构 Private、dim、static Public 变量的作用域与生存期 作用域: 变量起作用的范围 生存期:变量合法且可用的时间段 影响作用域的因素 1.声明的位置 2.声明的关键字
块级别作用域的示例: If x < > 0 Then Dim intNumber As Integer intNumber = x + 1 End If 过程级作用域的示例: Private Sub Button1_Click( ……) Handles Button1.Click Dim strmyVariable As String ' Insert code to add functionality End Sub 声明局部变量 声明位置:在块或过程内声明 格式: Dim 局部变量名 as 数据类型 作用域: 仅在声明它的块内或过程内有效。
关键字 作用域 Private 模块级别 Dim 模块级别 示例: Private strmyModuleMessage As String Dim strmyProjectMessage As String 声明模块级变量 • 声明位置:在模块或窗体的Declarations声明部分中声明 • 关键字及作用域:
关键字 作用域 Public 解决方案级别(全局) 示例: Public strmySolutionMessage As String 那么,在声明部分中的以下语句: Private strmyModuleMessage As String作用域? 声明全局变量 • 声明位置:在模块或窗体的Declarations声明部分中声明 • 关键字及作用域:
示例: Private Sub Button1_Click(…… ) Handles Button1.Click Static intitems As Integer intitems += 1 MessageBox (“现在合计为 " & intitems) End Sub 声明静态变量 • 声明位置:在块或过程中声明 • 格式: Static 静态变量名 As 数据类型 • 作用域: 仅在声明它的块内或过程内有效 • 特点: 具有继承性
3-1-4 常量 • 常量的分类: 系统常量与用户自定义常量 • 自定义常量的声明 声明常量的语法:Const 变量名 As 数据类型=取值 例如: Const pi As Single=3.1415926 使用常量的优点? • 简化代码编写 • 易于查错和改错
要使变量仅在函数或过程内有效,在何位置,用何关键字?要使变量仅在函数或过程内有效,在何位置,用何关键字? 要使变量在模块内有效,在何位置,用何关键字? 使变量在所有模块及窗体中有效,在何位置,用何关键字? 练习1 设置变量的访问级别
Dim 12Count As Integer Dim Number For Double Const Son's Birthday As Day Dim Error.Message As Text Dim CurrentExpenses With Decimal 练习2 找错误并说明原因
小结: • 数据类型的种类 • 各种数据类型的转换 • 变量的命名、定义及赋值 • 变量的作用域 • 常量的定义及使用
复习回顾: • 数据类型的种类 • 各种数据类型的转换 • 变量的命名、定义及赋值 • 变量的作用域 • 常量的定义及使用
要使变量仅在函数或过程内有效,在何位置,用何关键字?要使变量仅在函数或过程内有效,在何位置,用何关键字? 要使变量在模块内有效,在何位置,用何关键字? 使变量在所有模块及窗体中有效,在何位置,用何关键字? 习题1解答 设置变量的访问级别
Dim 12Count As Integer Dim Number For Double Const Son's Birthday As Day Dim Error.Message As Text Dim CurrentExpenses With Decimal 习题2解答 找错误并说明原因
3-1-5 运算符和表达式 一、赋值运算符与赋值表达式 赋值运算符:“=” 功能: 把运算符右边的内容赋给运算符左边的变量或属性。 格式:变量名=变量值 如:Value=10 ‘ 把数值10赋给变量Value Name1=label1.text ‘把标签的text属性给变量Name1 注意: 1.等号左边必须是变量或对象的属性,不能是数值、常量和表达式。 如:10=pi : 3+x=40 2.等号两边的数据类型应该匹配,不匹配时要进行相应的类型转换。
=? 练习:5+10 mod 10 \ 9 / 3 +2 ^2 二.算术运算符与算术表达式 Const a as integer=3 a^2 -a a*a*a 10/a 10\a 10 mod a 10+a a-10 按优先级排列的算术运算符 乘方 ^ 负号 - 乘 * 除 / 整除 \ 取余数 mod 加 + 减 - 还可以用括号() 9 -3 27 3.333333 3 1 13 -7
三. 字符串运算符与字符串表达式 运算符: +、& 两者的区别为: +:前后必须都是字符串类型的数据,不可为数值数据 &:允许连接数值和字符串,运算结果是字符串 举例: “abcdef”+12345 正确? “abcdef”&12345 正确?
四. 关系运算符、逻辑运算符及其表达式 关系运算符: 等于 = 大于 > 小于 < 大于等于 >= 小于等于 <= 不等于 <> 对象比较 is 模式匹配 like(P55) 逻辑运算符: Not 非 (单目) And 与 Or 或 Xor 异或 AndAlso 短路与 OrElse 短路或 大于等于、小于等于不可以用≥、≤ 各运算符的优先级顺序为: 算术运算符->字符串运算符->关系运算符->逻辑运算符 ->赋值运算符
课堂练习 判断下列表达式的执行过程及值 • “cat123khg” like “b?t *” • “am5b” like “a[l-p]#[!c-e]” • X=23>12 and 12>4 • 12>45 and myfunction(4) • 12>45 andalso myfunction(4) • 45>12 or myfunction(4) • 45>12 orelse myfunction(4)
2. 基本概念 • 定义:数组是相同类型数据元素的集合 • 特点: • 数组中所有元素是同一数据类型 • 数组在内存中占一片连续的存储单元 • 每个元素都可以通过数组名带下标来访问 3-1-6 数组 1. 引例 求100个学生的平均成绩及超过平均成绩的人数。
声明一维数组 格式: dim|private|public数组名(数组上界) [As 类型]={初始值} 说明: (1)访问权限有三种情况,决定了数组的作用域。 (2)数组名为用户定义标识符,命名原则同变量。 (3)数组上界必须为常数,不可以为表达式或变量。 (4)在VB.NET中,数组的下界总是从0开始,所以一维数组的元素个数为: 数组上界+1。 (5)若在定义时初始化数组,则可省略上界,此时上界的默认值为:元素个数-1 (6) 如果省略类型,则为object型 例: Dim A(10) As Integer 声明了A是一个具有11个元素的整型一维数组 ,下标的范围是0~10。
使用一维数组 • 数组引用格式: 数组名(下标值) 例: Public counters() As Integer ={1, 2, 3, 4, 5, 6, 7} 默认的上界为何? counters(3)=? 数组counters中的第5个元素下标为?
多维数组的定义及使用 定义格式: dim|private|public数组名(一维上界,二维上界,…) [As 类型]={初始值} 说明: • 多维数组元素个数 = 所有维数大小的乘积 • 示例: Public DblThreeDimensions(2,3,4) As Double • 使用格式: 数组名(一维下标值,二维下标值,…) • 例: ThreeDimensions(1,2,3) 的含义为何?
示例: Dim myArray(,) '声明数组 …… ReDim myArray(3, 5) '改变数组的大小 动态数组 定义格式: dim 数组名() as 类型 … ReDim 已声明的数组名(新大小) 说明: (1)Redim 必须放在过程中,不能放在模块的声明部分。因为Redim 语句是可执行语句。 (2)在过程中可以多次使用ReDim来改变数组的大小,但不可改变数组的维数。
小结: • 运算符与表达式的分类及正确使用 • 一维数组的定义及使用 • 多维数组的定义及使用 • 动态数组的使用
练习: • 1、计算圆的周长与面积: 设计一个应用程序,根据用户输入的圆半径,计算并输出圆的周长和面积。 提示:使用变量表示半径、周长和面积,用常量来表示PI。 • 2、计算雇员的年收入: 编写应用程序来计算雇员的年收入。年收入等于雇员12个月的月收入和奖金的总和。奖金等于雇员年收入的1/4.
总结: • 变量的数据类型 • 数据类型的转换 • 变量的定义、命名与赋值 • 变量的作用域 • 常量的分类及定义 • 运算符与表达式的正确使用 • 数组的定义及使用