480 likes | 668 Views
第 2 ç« VB.NET 编程基础. ç›®æ ‡ 了解 VB.NET 程åºä¹¦å†™è§„则 了解 VB.NET å’Œ VB çš„ä¸åŒ æŽŒæ¡ VB.NET ä¸çš„æ•°æ®ç±»åž‹ã€å˜é‡ä¸Žå¸¸é‡ 掌æ¡å„ç§è¿ç®—符 æŽŒæ¡æ•°ç»„的用法 掌æ¡å„ç§æŽ§åˆ¶ç»“æž„ 掌æ¡è¿‡ç¨‹ä¸Žå‡½æ•°. 2.1 VB.NET 程åºä¹¦å†™è§„则. 任何程åºè®¾è®¡è¯è¨€éƒ½æœ‰ç¡®å®šçš„书写规则。 VB.NET 的主è¦è§„则如下: 1 ã€ä»£ç ä¸åŒºåˆ†å¤§å°å†™ 对于 VB.NET 的关键å—ï¼Œä¸€èˆ¬å°†é¦–å—æ¯è½¬æ¢ä¸ºå¤§å†™ï¼Œå…¶ä½™å—æ¯è½¬æ¢ä¸ºå°å†™ï¼› 对于用户定义的å˜é‡ã€è¿‡ç¨‹å’Œå‡½æ•°åï¼Œä»¥å®šä¹‰çš„æ ¼å¼ä¸ºå‡†ï¼Œä»¥åŽè¾“入时将自动转æ¢ä¸ºå®šä¹‰æ—¶çš„æ ¼å¼ 2 ã€ç¨‹åºä¹¦å†™è‡ªç”±
E N D
第2章 VB.NET编程基础 • 目标 • 了解VB.NET程序书写规则 • 了解VB.NET和VB的不同 • 掌握VB.NET中的数据类型、变量与常量 • 掌握各种运算符 • 掌握数组的用法 • 掌握各种控制结构 • 掌握过程与函数
2.1VB.NET程序书写规则 • 任何程序设计语言都有确定的书写规则。VB.NET的主要规则如下: • 1、代码不区分大小写 • 对于VB.NET的关键字,一般将首字母转换为大写,其余字母转换为小写; • 对于用户定义的变量、过程和函数名,以定义的格式为准,以后输入时将自动转换为定义时的格式 • 2、程序书写自由 • 如果在一行内显示多个语句,则在各个语句间用冒号分隔,例如: • A=A+1:B=B+A:C=C+B • 一般一个语句占据一行,如果一条语句太长,不能在一行内写完,则要续行。VB.NET用“一个空格”+“下划线”表示续行
2.1VB.NET与VB的不同 • 1、变量方面 • 在VBScript中一律将变量视为Variant型变量,ASP.NET中可使用Dim语句显式声明变量的数据类型,因为它是基于VB.NET的,不再是ASP中的VBScript. • 2、过程、函数调用方面 • VB.NET中过程调用语法为:过程名(参数列表),且VB.NET中默认为“按值传递”参数。 • 3、数组方面 • 原VB6的一些数组声明方式在VB.NET中已不再适用,如: • Dim intMyArr(15 to 30) • 在VB.NET中数组的下标总是基于0的。 • 赋初值得方式也不同,见书。 • 4、部分常用函数的改变
2.3 常量与变量 • 1、常量 • 常量是代表某些特殊含义的不可改变的值。分为系统常量和用户自定义的常量。系统常量是系统预先定义好的常量,可 以在脚本中使用,不受作用域和可见性限制。 • 系统常量:例:vbcrlf:回车换行符 • 用户自定义常量 声明常量的语法如下: [Public|Protected|Friend|Private] Const constname [As DataType]=InitExpr
2.2 常量与变量 • 2、变量 • 变量它相当于一个容器,用于保存程序执行过程中可能发生变化的值。 • 1)命名规则: • 只能是字母、下划线和汉字开头,后跟字母、数字、下划线和汉字。 • 不能使用VB.NET系统保留的关键字 • 变量名在其声明的作用域内必须唯一 • 采用Pascal和Camel命名法
2.2 常量与变量 • 2)变量的声明 • 变量必须在使用前说明。提高编译效率,减少输入错误 • 例: dim dtvar as date • dim intx as integer =100 • dim chry as char • 在ASPX页面的顶部的<page>指令中,可以设置: • <%@ Page language=“VB” explicit=“true” %> • 会要求变量必须先定义,后使用! • 3)变量的作用域 • 变量按作用域可分为“全局变量”和“局部变量”。
课堂实训1 • 在不同的子程序或函数中定义同名的局部变量,并显示变量的值。操作步骤: • 1)新建一个名称为“2-1”的项目,并将该项目下的默认窗体改名为“ex2-1.aspx”。 • (2)双击“ex2-1.aspx”窗体,进入代码编辑页面,在page_load事件中和子程序proc1()中,分别定义一字符串变量message,赋不同的值并显示相应变量的值。
课堂实训2 • 声明一个全局变量,并在子程序或函数中改写该全局变量的值。 • 操作步骤: • (1)新建一个名称为“2-2”的项目,并将该项目下的默认窗体改名为“ex2-2.aspx。 • (2)双击“ex2-2.aspx”窗体,进入代码编辑页面,声明一个全局变量message,在事件Page_Load中和子程序proc1()中,对该全局变量赋值并显示该变量的值。
课堂实训3 • 声明一个全局变量,并在子程序或函数中声明同名的局部变量,并赋值。 • 操作步骤: • (1)新建一个名称为“2-3”的项目,并将该项目下的默认窗体改名为“ex2-3.aspx”。 • (2)双击“ex2-3.aspx”窗体,进入代码编辑页面,声明一个全局变量message,在子程序proc1()中声明同名局部变量并赋值,
课堂实训4 • 课堂实训4:静态变量的使用。 • 操作步骤: • (1)新建一个名称为“2-4”的项目,并将该项目下的默认窗体改名为“ex2-4.aspx”。 • (2)双击“ex2-4.aspx”窗体,进入代码编辑页面,输入代码
2.3 运算符 1、赋值运算符
2.3 运算符 2、算术运算符
3、 比较运算符 2.3 运算符
4、逻辑运算符 2.3 运算符 • 逻辑运算符是用来连接多个条件式,并判断其结果真假以决定程序流程的运算符
5、连接运算符 2.3 运算符 • 连接运算符就是将两个表达式连接在一起。运算符有“&”和“+”,如果操作数是“String”类型,那么这两个运算符完成的功能是一样的
2.4 数组 2.4.1 数组的概念 数组(Array)用来存放一组具有相同数据类型的值,可以用数组名字引用一系列变量,并用数字(索引)来识别它们。在许多场合,使用数组可以缩短和简化程序,因为可以利用索引值设计一个循环,高效处理多种情况。数组的元素下标是连续的,因为对每一个索引值都分配空间,所以不要不切实际地声明一个太大的数组
2.4 数组 2.4.2 声明与设置数组值 声明数组 与变量一样,数组也是要先声明后才能使用。下面为 声明数组方法: Dim 数组名称(下标大小)As 数据类型, 或 Dim 数组名称() As 数据类型=New 数据类型(下标大小){ } 设置数组值 设置数组的语法: 数组名称(索引值) = 元素
2.4 数组 2.4.3 改变数组大小 VB.NET中并不允许声明一个大小不确定的数组。但是,它允许我们随时调整数组的大小,以符合编程需要。下面是它的语法格式: ReDim [Preserve] 数组名称(数组大小) 其中:“ReDim”语句用来改变数组大小,而“Preserve”关键字则会将原数组中的数据保留下来
2.4.4 数组列表 2.4 数组 【例2-2】下列程序的输出结果如图所示。 <%@ page language="vb" %> <html> <head> <script language="vb" runat="Server"> Public Sub Page_Load(sender as Object,e as EventArgs) Dim j as integer Dim arl as New ArrayList() For j=0 to 10 arl.Add(j) Next j For j=0 to 10 Response.write(Arl(j)&"<br>") Next j End Sub </script> </head> <body> </body> </html>
2.4.5 多维数组 2.4 数组 • VB.NET还支持多维数组。如要使用二维数组,则可以用下面三种方式中的一个来定义它: • Dim array1(2,2) As Integer • Dim array2 As Integer(,) • Redim array2(2,2) • Dim array3 As Integer(,)={{10,20},{30,40}} • ′array3(0,0)=10 array3(0,1)=20 • ′array3(1,0)=30 array3(1,1)=40
2.5 控制语句 • 控制语句是用来改变语句的流程,VB.NET的控制语句又可分为两种:选择语句和循环语句 • 2.5.1 选择语句 • 1、If语句 • If语句是常用的选择语句,它适用于判断条件所产生的可能性不是很多的情形。针对该条件语句,介绍两种常用语法格式。 • 语法格式一: • If (逻辑条件) Then • (执行语句序列1) • Else • (执行语句序列2) • EndIF
2.5 控制语句 语法格式二: If (逻辑条件1) Then (执行语句序列1) Else I f (逻辑条件2) then (执行语句序列2) …… Else I f (逻辑条件n) then (执行语句序列n) Else (执行语句序列n+1) End IF
课堂实训5 • 按年龄发放工资。根据用户输入不同的年龄,显示相应的工资。 • 操作步骤: • (1)新建一个名称为“2-5”的项目,并将该项目下的默认窗体改名为“ex2-5.aspx”。 • (2)将”ex2-5.aspx”窗体中的PageLayout属性设置为FlowPageLayout。并在该窗体中输入“请您输入您的年龄:”;并添加一个按钮、一个文本框和一个标签框。 • (3)双击“ex2-5.aspx”窗体,进入代码编辑页面,在btnsubmit_click事件中编程: 从文本框中获取用户输入的年龄,并根据年龄显示不同的工资。
2.5 控制语句 2、条件语句Select Case语句 适用于判断条件为多种可能时。语法格式如下: Select Case 被测表达式 Case Value1 执行语句序列1 Case Value2 执行语句序列2 …… Case ValueN 执行语句序列N Case Else 执行语句序列N+1 End Select
课堂实训6 • 课堂实训6:用Select …Case语句实现根据用户输入的不同的年龄,显示相应的工资 • 操作步骤: • (1)新建一个名称为“2-6”的项目,并将该项目下的默认窗体改名为“ex2-6.aspx”。 • (2)”ex2-6.aspx”窗体的界面设计同课堂实训5的“ex2-5.aspx”。 • (3)双击“ex2-6.aspx”窗体,进入代码编辑页面。在btnsubmit_click事件中编程:从文本框中获取用户输入的年龄,并根据年龄显示不同的工资。
2.5.2循环语句 • 循环语句用于重复执行一段代码。VB.NET根据不同的情况,提供了四种循环语句:Do…Loop语句、For Each…In…Next语句、For…Next语句和While…End While语句。 • 1、 Do…循环语句 • 语法格式: • Do While(Until)判断条件 • 执行语句序列 • [Exit Do] • 执行语句序列 • Loop • 或 • Do • 执行语句序列 • Loop While(Until) 判断条件
课堂实训7 • 课堂实训7:计算10以内数的累加和程序。 • 操作步骤: • (1)新建一个名称为“2-7”的项目,并将该项目下的默认窗体改名为“ex2-7.aspx”。 • (2)将”ex2-7.aspx”窗体中的PageLayout属性设置为FlowPageLayout。并在该窗体中输入“请输入10以内的数:”;并添加一个按钮、一个文本框和一个标签框。 • 3)双击“ex2-7.aspx”,进入代码编辑页面。在btnsubmit_Click事件中编程:根据用户输入的值计算累加和
2.5.2循环语句 2、For…Next语句 用于事先知道确切循环次数的循环语句,其语法格式如下: For i=起始值 to 终止值 Step 步长 执行语句序列 Exit For 执行语句序列 Next
课堂实训8 • 课堂实训8:计算10以内的奇数累加和程序 • 操作步骤: • (1)新建一个名称为“2-8”的项目,并将该项目下的默认窗体改名为“ex2-8.aspx”。 • (2)“ex2-8.aspx”的页面设计同课堂实训7的页面设计。唯一区别是将按钮(btnsubmit)的text属性改为“计算奇数累加和”。 • (3)双击“ex2-8.aspx”,进入代码编辑页面。在btnsubmit_Click事件中编程:根据用户输入的值计算奇数累加和。
2.5.2循环语句 • 3、For Each…In…Next语句 • 与For…Next循环类似,用于对数组或集合中每个元素进行遍历的。下面是一个用For Each…In…Next遍历数组元素的例子。例: • Sub Sum() • Dim array as String={“元素1”,”元素2”,”元素3”,”元素4”} • Dim Item As String • For Each Item In array • Response.Write(Item & “<br>”) • Next • End Sub • 4、While…End While语句 • While…End While语句类似于Do While…Loop语句。 • 语法格式如下:While 判断条件 • 执行语句序列 • End While
2.6 函数与过程 • 对于一个复杂的处理过程,可以将其分化为几个相对独立的小程序,每个小程序解决一个或一部分问题,这些小程序就称为过程或函数。利用过程或函数编程,可以简化问题,具有以下好处: • 过程具有可重用性。 • 可提高代码的可读性。 • 可增强代码的可维护性。 • 过程和函数的本质区别是:函数可以返回值,而过程不行 • 1、过程 • 声明一个过程的语法格式: • [访问修饰符]Sub 过程名 [(参数列表)] • 执行语句序列 • [Exit Sub] • 执行语句序列 • End Sub • 过程参数的声明 • 其语法声明如下: • [Optional] [ByVal|ByRef] [ParamArray] argumentname As DataType • 过程调用的语法格式: • [Call] 过程名[(参数列表) • 说明:Call为调用的关键字,可以省略。
课堂实训9 课堂实训9:根据用户输入的年龄,若年龄大于40,显示“***对不起,你不是年青人!”若年龄小于等于40,则显示“***年青人,你风华正茂!”。要求年龄判断用过程实现。 操作步骤: (1)新建一个名称为“2-9”的项目,并将该项目下的默认窗体改名为“ex2-9.aspx”。 (2)将”ex2-9.aspx”窗体中的PageLayout属性设置为FlowPageLayout。并在该窗体中输入“请输入您的姓名:”和“请输入您的年龄:”。添加一个按钮、二个文本框和一个标签框。 3)双击“ex2-9.aspx”,进入代码编辑页面。输入以下代码: btnsubmit_Click事件:获取用户输入的姓名和年龄。
2.6 函数与过程 • 2、函数 • 函数的语法声明如下: • Function 函数名[(参数列表)][As Type] • 执行语句序列 • [Exit Function] • 执行语句序列 • End Function • 说明: • 函数可以有一个返回值,一般是在函数体的末尾用“函数名=返回值”形式返回值,也可以用Return(返回值)语句返回值。 • As Type用于说明函数返回值的类型,为可选项。 • 如果在函数执行过程中遇到Exit Function语句,则忽略Exit Function后面的执行语句序列,立即退出函数体.
2.6 函数与过程 函数的调用的格式: 变量名=函数名[(参数列表)] 说明:函数的调用一般用于赋值表达式的右边。可以把一个函数作为一个值来看待。函数也可以不返回值,这时函数的作用就相当于过程。
课堂实训10 • 课堂实训10:求两个数的和。要求求和程序用函数实现。 • 操作步骤: • (1)新建一个名称为“2-10”的项目,并将该项目下的默认窗体改名为“ex2-10.aspx”。 • (2)将”ex2-10.aspx”窗体中的PageLayout属性设置为FlowPageLayout。并在该窗体中添加两个文本框、一个按钮和一个标签框并输入一个“+”号。 • 3)双击“ex2-10.aspx”,进入代码编辑页面。输入以下代码。 • sum_Click事件:获取用户输入的两个加数,并调用函数求和。
2.6 函数与过程 3、属性过程 • 属性声明 • 属性本身是由包含在Property语句和End Property语句之间的代码块来定义的 • 语法如下: • [Public|Private|Friend|Protected] Property propertyname[(argumentlist)] As datatype • Get • ……… • Return expression • End Get • Set[(ByVal newvalue As datatype)] • Lvalue=newvalue • End Set • End Property
2.6 函数与过程 3、属性过程 • 属性的引用 • 属性过程是被引用属性的代码隐式调用的 • 属性名在代码中使用的方式要与变量名在代码中使用的方式一样 • 调用Set过程的语法如下: • propertyname[(asrgumentlist)]=expression • 调用Get过程的语法如下: • lvalue=propertyname[(argumentlist)]
2.7 参数传递 1、按值传递 • 语法是: • [Private |Public|Friend] Sub subname(ByVal paramname As datatype) • statements • End Sub • 或是: • [Private|Public|Friend] Function functionname(ByVal paramname As DatatType) As DataType • Statements • Return expression • End Function
2.7 参数传递 2、按地址传递 • 按地址传递参数是用变量的内存地址去访问实际变量的内容 ,它的语法是: • [Private |Public|Friend] Sub subname(ByRef paramname As datatype) • Statements • End Sub • 或是: • [Private|Public|Friend] Function functionname(ByRef paramname As DatatType) As DataType • Statements • Return expression • End Function
2.7 参数传递 【例】按值传递参数 • <script langauge="vb" runat="Server"> • sub total(ByVal day As Integer ,ByVal overtime As Double) • Dim money As Double • Money=day*800+overtime*800/3 • Response.Write("工作"& day &"天 加班"& overtime &"小时"&"<br>") • Response.Write("薪水总额: "& money &"<br>") • Day+=10 • Response.write("函数中的天数+10后="& day &"天"&"<br>") • end sub • sub page_load() • dim day,overtime As Double • day=24 • overtime=15 • total(day,overtime) • Response.write("主程序中的工作天数="& day &"<br>") • end sub • </script>
2.7 参数传递 【例】 按地址传递参数 • <script langauge="vb" runat="Server"> • sub total(ByRef day As Integer ,ByVal overtime As Double) • Dim money As Double • Money=day*800+overtime*800/3 • Response.Write("工作" & day & "天 加班" & overtime & "小时" & "<br>") • Response.Write("薪水总额:" & money & "<br>") • Day+=10 • Response.write("函数中的天数+10后=" & day & "天" & "<br>") • end sub • sub page_load() • dim day,overtime As Double • day=24 • overtime=15 • total(day,overtime) • Response.write("主程序中的工作天数=" & day & "<br>") • end sub • </script>
2.7 综合实训—创建一个数值计算程序 • 项目功能:该项目完成两个数的加法、减法、乘法、除法、a的b次幂、求余等。 • 设计思路:将各种操作符添加到列表框的成员中,单击“结果为”按钮,根据列表框成员的值进行相应的运算,将运算的结果显示到标签中。 • 设计界面见下图:
2.7 综合实训—创建一个数值计算程序 • btnsubmit_Click事件:完成根据用户所选的运算符,对两个操作数进行计算,并将结果显示出来到标签中。 • Private Sub btnsubmit_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnsubmit.Click • Dim myoperator As String • myoperator = operator.SelectedItem.Value.Trim • Dim intval As Integer • Select Case myoperator • Case "+" • intval = CType(myvalue1.Text, Integer) + CType(myvalue2.Text, Integer) • myresult.Text = intval.ToString • Case "-" • intval = CType(myvalue1.Text, Integer) - CType(myvalue2.Text, Integer) • myresult.Text = intval.ToString • Case "*" • intval = CType(myvalue1.Text, Integer) * CType(myvalue2.Text, Integer) • myresult.Text = intval.ToString
2.7 综合实训—创建一个数值计算程序 • Case "/" • intval = CType(myvalue1.Text, Integer) / CType(myvalue2.Text, Integer) • myresult.Text = intval.ToString • Case "\“ • intval = CType(myvalue1.Text, Integer) \ CType(myvalue2.Text, Integer) • myresult.Text = intval.ToString • Case "^" • intval = CType(myvalue1.Text, Integer) ^ CType(myvalue2.Text, Integer) • myresult.Text = intval.ToString • Case "mod" • intval = CType(myvalue1.Text, Integer) Mod CType(myvalue2.Text, Integer) • myresult.Text = intval.ToString • End Select • End Sub
2.7 综合实训—创建一个数值计算程序 • 说明: • IsPostBack:指示该页是为响应客户端回发而加载,还是被首次加载访问。True:为响应客户端回发而加载该页;False:是首次被加载访问 • Ctype函数:返回表达式显示地转换为指定数据类型、对象、结构、类或接口后的结果。语法格式如下:Ctype(expression,typename),如果expression的值超过了typename所允许的范围,将会出现错误。
本章小结 • 本章主要讲述了VB.NET的基本语法。程序的书写规则。变量与常量的区别,变量的作用范围。各种运算符的含义和使用方法。数组的声明及赋值。选择语句和循环语句的结构以及过程和函数的作用和区别。