-
vb.net教程之分支
分支
在程序设计中,条件语句能够根据表达式的值来决定代码的执行流程。在VB.NET中,条件分支语句有两种:If/Then/Else语句和Select/Case语句。1. If/Then/Else语句
If/Then/Else语句是最常用的条件语句。它的基本形式是:If condition Then statements1 [Else statements2 ]
它表示:如果condition为True,那么就执行statements1;否则执行statements2。
例2.4(4.aspx)根据时间显示问候信息。
1: <%
2: If Hour(Now)<12 Then Response.Write ("Good morning! Cindy!")
3: If Hour(Now)=12 Then Response.Write ("Good noon! Cindy!")
4: If (Hour(Now)>12 And Hour(Now)<18) Then Response.Write ("Good afternoon! Cindy!")
5: If Hour(Now)>=18 Then Response.Write ("Good evening! Cindy!")
6: %>
在上面的例子中,函数Hour()是对给出的日期时间求它的小时数,Now函数用于返回当前的日期和时间。程序根据当时的时间判定是上午、中午还是下午,分别给出问候信息。我们看到,这个写法很简单,但是这个程序为了显示一条问候信息,要对Hour(Now)取值4次并且执行4次比较才能完成,从效率上考虑并不好。
If/Then/Else语句还可以写成比较复杂的形式:
If condition_1 Then
statements_1
[ElseIf condition_m Then
statements_m
[ElseIf condition_n Then…]]
[Else
statements_2]
End If
这个语句可以检测多个条件。第一种写法要求语句在写的时候要在一行中写完,例如例2.4 的第2行的If语句。这条语句也可以采用第二种方法来写,方法如下:
If Hour(Now)<12 Then
Response.Write ("Good Morning!Cindy!")
End If
建议用户采用后一种写法,因为这种方法更结构化,可读性好。当用户在调试大型软件的代码时,会发现,虽然看起来多写了几行语句,但好处却是很大的。
例2.5(5.aspx)根据时间显示问候信息。请注意这个例子的写法与上个例子中的写法在执行效率上的区别。
1: <%
2: If Hour(Now)<12 Then
3: Response.Write ("Good morning! Cindy!")
4: ElseIf Hour(Now)=12 Then
5: Response.Write ("Good noon! Cindy!")
6: ElseIf Hour(Now)>=18 Then
7: Response.Write ("Good evening! Cindy!")
8: Else
9: Response.Write ("Good afternoon! Cindy!")
10: End If
11: %>
上面的例子在执行的过程中,对于当前不同的时间,为了显示问候信息,执行的Hour(Now)的取值和比较的次数是不一样的:最少只要1次,最多需要3次。从效率上看,比例2.4要好。
2. Select/Case结构
当程序中的条件比较复杂,而且是根据同一个表达式的不同值执行不同操作的时候,用If/Then/Else语句来写就显得十分烦琐。这时可以考虑采用Select/Case结构来完成条件语句。Select/Case结构为:
Select Case testexpression
Case condition_1
statements_1
[ …
Case Else
statements_n]
End Select
例2.66.aspx)用Select/Case语句来实现问候信息的显示。
1: <%
2: Select Case Hour(Now)
3: Case 0,1,2,3,4,5,6,7,8,9,10,11
4: Response.Write ("Good morning! Cindy!")
5: Case 12
6: Response.Write ("Good noon! Cindy!")
7: Case 13,14,15,16,17
8: Response.Write ("Good afternoon! Cindy!")
9: Case Else
10: Response.Write ("Good evening! Cindy!")
11: End Select
12: %>
很明显,用这种方法来显示问候信息要比用If/Then/Else语句清楚得多。
2.4 循环
VB.NET中的循环有三种形式:For/Next、While/End While、Do/Loop和For/Each。1. For/Next循环
用For/Next循环可以精确地控制循环体的执行次数。For/Next循环的语法如下:For counter = startvalue To endvalue [Step stepvalue]
[statements]
[Exit For]
[statements]
Next
其中,用Step关键字可以定义循环计数器的增长方式,stepvalue的值(可正可负)来适应各种不同的需求。Exit For语句允许在某种条件下直接退出循环体。
例2.7(7.aspx)用For/Next语句来实现显示二维数组的内容。
1: <%
2: Dim arrData(1,2)
3: Dim intI,intJ as Integer
4: arrData(0,0)=12
5: arrData(0,1) =13
6: arrData(0,2) =14
7: arrData(1,0) =15
8: arrData(1,1) =16
9: arrData(1,2) =17
10: For intI=0 To 1
11: For intJ=0 To 2
12: Response.Write (arrData(intI,intJ) & " ")
13: Next
14: Response.Write ("<br>")
15: Next
16: %>
2. While/End While 循环
While/ End While语法如下:While condition
[statements]
End While
由于在进入循环体之前会遇到检测条件,所以如果这个时候condition的值为False,那么While/ End While循环的循环体有可能一次也不能执行。
例2.8(8.aspx)显示3次问候信息。
1: <%
2: Dim intI as Integer
3: IntI=0
4: While intI<3
5: Response.Write ("Hello! Cindy!" & "<br>")
6: IntI=intI+1
7: End While
8: %>
3. Do/Loop
同样,在不知道循环次数的情况下,也可以使用Do/Loop 循环。Do/Loop循环的作用与While/ End While十分相似。它的语法是:Do {While | Until} condition
[statements]
[Exit Do]
[statements]
Loop
其中,Do后面的While和Until是可选的。使用While时,后面的条件满足则执行循环体;使用Until时,后面的条件满足就退出循环体。Do/Loop循环还有另外一种写法:
Do
[statements]
[Exit Do]
[statements]
Loop {While | Until} condition
这种写法的结果是:循环体在执行的时候至少会执行一次。
例2.9(9.aspx)显示3次问候信息。
1: <%
2: Dim intI
3: IntI=0
4: Do Until intI>2
5: Response.Write ("Hello! Cindy!" & "<br>")
6: IntI=intI+1
7: Loop
8: %>
4. For/Each
在某些特殊情况下,可以使用For/Each来实现对一个数组或集合中元素的遍历。For/Each语句的写法如下:
For Each item In Array or Collection
[statements]
Next
例2.10(10.aspx)用For/Each显示一个数组中的所有数据。
1: <%
2: Dim arrData(3)
3: Dim stritem as string
4: arrData(0)="Beijing"
5: arrData(1)="Shanghai"
6: arrData(2)="Guangzhou"
7: For Each stritem In arrData
8: Response.Write (stritem & "<br>")
9: Next
10: %>
可以看出,For/Each循环与For/Next循环的区别是:在For/Next循环中需要指明循环的次数,而在For/Each循环中不需要这样就可以遍历到一个数组或集合的所有内容。另外需要说明的是,这种循环通常在集合中使用。
2.5 过程和函数
在ASP.NET中,实现这种小程序的方式有两种:过程和函数。
栏目列表
最新更新
python爬虫及其可视化
使用python爬取豆瓣电影短评评论内容
nodejs爬虫
Python正则表达式完全指南
爬取豆瓣Top250图书数据
shp 地图文件批量添加字段
爬虫小试牛刀(爬取学校通知公告)
【python基础】函数-初识函数
【python基础】函数-返回值
HTTP请求:requests模块基础使用必知必会
SQL SERVER中递归
2个场景实例讲解GaussDB(DWS)基表统计信息估
常用的 SQL Server 关键字及其含义
动手分析SQL Server中的事务中使用的锁
openGauss内核分析:SQL by pass & 经典执行
一招教你如何高效批量导入与更新数据
天天写SQL,这些神奇的特性你知道吗?
openGauss内核分析:执行计划生成
[IM002]Navicat ODBC驱动器管理器 未发现数据
初入Sql Server 之 存储过程的简单使用
uniapp/H5 获取手机桌面壁纸 (静态壁纸)
[前端] DNS解析与优化
为什么在js中需要添加addEventListener()?
JS模块化系统
js通过Object.defineProperty() 定义和控制对象
这是目前我见过最好的跨域解决方案!
减少回流与重绘
减少回流与重绘
如何使用KrpanoToolJS在浏览器切图
performance.now() 与 Date.now() 对比