首页 百科知识 VBScript的控制结构

VBScript的控制结构

时间:2024-10-15 百科知识 版权反馈
【摘要】:图6-12 分支语句的应用2. 循环结构循环结构通常用于重复执行一组语句。在VBScript提供了多种不同风格的循环,下面学习最常用的Do循环和For循环。

6.2.3 VBScript的控制结构

在没有控制语句的情况下,VBScript中的代码总是按照书写的先后顺序依次执行。但是在实际应用中,通常要根据情况来改变代码的执行顺序,这时就要用到控制结构。在VBScript中,控制结构有两种,即判断结构和循环结构。

1. 判断结构

VBScript支持的判断结构分为条件语句和分支语句两种。

1)条件语句

条件语句一般使用多行语句的结构,根据条件的真或假指定要运行的语句。以下是多行条件语句的常用的两种形式。

形式一:If…Then…End If

If 条件语句 Then

执行语句

End If

形式二:If…Then…Else…End If

If 条件语句 Then

执行语句1

Else

执行语句2

End If

条件语句可以嵌套,每一个“执行语句”中还可以包含有条件语句。因此,条件语句可以形成很多个分支的结构。它的使用方法和含义与其他高级语言非常相似,这里不再举例说明。

注意:条件语句除了有多行结构外,还有单行结构;多行结构还有另外几种写法。这里只是列举了条件语句常用的多行结构的常用写法。

2)分支语句

分支语句也就是Select Case语句,它是判断结构的另外一种形式,在某些情况下使用分支语句比条件语句有更强的可读性。当然,也可以用条件语句来实现分支语句的功能。

分支语句的语法结构如下。

Select Case 变量或表达式

Case 结果1

执行语句1

Case 结果2

执行语句2

……

Case 结果N

执行语句N

Case Else

执行语句N+1

End Select

在执行Select Case语句时,先计算表达式或变量的值,然后将结果与每一个Case后的结果进行比较,若相等就执行此Case后的“执行语句”,然后退出Select Case语句,若与所有的结果(结果1~结果N)都不相等,则执行Case Else后的执行语句N+1后再退出。

---------------------------清单6-4 6-4.asp--------------------------

<HTML>

<HEAD>

<TITLE> 分支语句的使用 </TITLE>

</HEAD>

<BODY>

<%

Dim h

h=Hour(Now())'使用内置函数获取服务器当前时间的小时数

Select Case h

Case 0

Response.write "现在时间:零点"

Case 7,8,9,10,11,12

Response.write "现在时间:上午"

Case 13,14,15,16,17,18

Response.write "现在时间:下午"

Case Else

Response.write"现在时间:夜间"

End select

%>

</BODY>

</HTML>

--------------------------------------------------------------------

调试结果如图6-12所示。

img418


图6-12 分支语句的应用

2. 循环结构

循环结构通常用于重复执行一组语句。在VBScript提供了多种不同风格的循环,下面学习最常用的Do循环和For循环。

1)Do循环

Do循环有以下两种形式。

第一种是Do while…Loop循环。

语法如下:

Do while 条件

执行语句

Loop

第二种是Do…Loop while循环。

语法如下:

Do

执行语句

Loop While 条件

第一种是入口型循环,它先检查条件是否为True,如果为True,才会进入循环中执行语句,否则退出循环;而第二种是出口型循环,先无条件地进入循环中执行1次后,再判断条件是否为True,如果为True,才会继续进入循环中执行语句,否则退出循环。

可以把两种do循环中的关键字while换成until,换成until以后,意义与while相反:当条件为True时,退出循环;条件为False时,循环。

例如,用Do循环计算1+2+3+…+100的值

---------------------------清单6-5 6-5.asp--------------------------

<HTML>

<HEAD>

<TITLE> Do循环的使用 </TITLE>

</HEAD>

<BODY>

<%

Dim i,sum

i=1

sum=0

Do While i<=100

sum=sum+i

i=i+1

Loop

Response.write "使用Do while….Loop循环:Sum(1,…,100)="&sum

i=1

s=0

Do

s=s+i

i=i+1

Loop While i<=100

Response.write"<br>使用Do …. Loop while循环:Sum(1,…,100)="&s

%>

</BODY>

</HTML>

--------------------------------------------------------------------

调试结果如图6-13所示。

img419


图6-13 Do循环的使用

2)For循环

与Do循环不同,For循环包含有一个循环变量,每执行一次循环,循环变量的值就会增加或减少。For循环的语法格式如下。

For 循环变量=初值 To 终值 [Step=步长]执行语句

Next

其中,“循环变量”、“初值”和“步长”都是数值型。步长可正可负,如果为正,初值必须小于或等于终值;如果为负,初值必须大于或等于终值。步长为1时,可以省略Step=1。

用For循环求1+2+3+…+100的值。

---------------------------清单6-6 6-6.asp--------------------------

<HTML>

<HEAD>

<TITLE> For循环的使用 </TITLE>

</HEAD>

<BODY>

<%

Dim i,sum

sum=0

For i=1 To 100

sum=sum+i

Next

Response.write"1+2+3+...+100="&sum

%>

</BODY>

</HTML>

--------------------------------------------------------------------

调试结果如图6-14所示。

img420


图6-14 For循环的使用

注意:在VBScript中,循环变量在每一次循环后自动增加或减少,不需要在循环中修改循环变量。如6-10.asp中,若在循环中增加语句i=i+1,会造成逻辑错误得不到正确的结果。

3)强行退出循环

一般情况下,都是根据条件判断退出循环,但有时候需要强行退出循环。在Do…Loop循环中,强行退出循环的指令是:Exit Do;在For…Next 循环中强行退出循环的指令是:Exit For。例如,

<%

Dim i,s

s=0

For i=1 To 100

s=s+i

If i>50 then '如果i>50就强行退出循环

Exit For

End If

Next

%>

免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。

我要反馈