使用循环（for…next）

如果你要重复执行一句或一组语句特定的次数，你可以使用for…next循环。下面的for…next循环打印10次Hello World!

<%

for (myvar=0; myvar<10; myvar++)

%>

Hello World!

for语句包含三部分，第一部分初始化变量，在此例中，新的变量myvar的初始值是0，第二个部分判断某个条件是否为真，这个循环当myvar的值小于10时一直在执行。for语句的最后一部分自增myvar变量。

通常你有一组语句需要在for…next循环中执行，要指定一组语句执行，你要用花括号（{}）将这些语句包含起来。如下面所示：

<%

for (myvar=0; myvar<10; myvar++)

{

%>

<BR> Hello World!

<BR> How are you today?

<%

}

%>

在此例中，一组HTML语句在浏览器上重复显示10次，注意在这个脚本末尾结束for…next循环的花括号}。

与for…next语句最接近的语句是for…in语句，你可以使用for…in语句来逐个访问数组或对象中的每一个元素。下面的例子说明了这个语句的用法：

<%

myarray=new Array(“John”,“Paul”,“George”,“Ringo”);

for (myvar in myarray)

{

%>

<%=myarray[myvar]%>

<%

}

%>

这个脚本输出名为myarray的数组中的所有元素的值，对数组中的每个元素，都要执行一遍循环体中的语句。

使用while循环

如果当某一特定条件为真时你要执行一条或一组语句，那么你可以使用while循环。while循环只有当条件为真时才执行，来看下面的脚本：

<%

function ThePresent()

{

var ThePresentTime=new Date();

return ThePresentTime.getTime();

}

TheFutureTime=new Date();

TheFutureTime.setSeconds(TheFutureTime.getSeconds()+15);

TheFuture=TheFutureTime.getTime();

while (ThePresent()<TheFuture)

{

%>

<BR> Waiting for the future

…

<%

}

%>

这个脚本反复在屏幕上显示文本Waiting for the future

…达15秒（见图9.4）。紧跟在while语句后的语句组不断执行直到括号中包含的条件为假时才停止。在这种情况下，当现在的时间与启动脚本的时间差在15秒之内时（使用函数不断地刷新当前时间），while循环不断执行。

如果在while语句执行之前，它的条件就是假的，那么while中包括的循环体就不会被执行。也就是说，如果while语句的条件永远都是真的，则循环就会永远地执行下去。

使用while语句时你要小心不要陷入到死循环中去，如果你不小心建立了一个死循环，也不要担心。要有耐心，在一定时间之后脚本会自动终止的（通常是90秒）。

注意

你可以使用服务器对象的ScriptTimeOut属性来控制在时间到达之前一个脚本执行多长时间。你可以从第14章“使用单个ASP”来学习怎样实现这一目的。

图9.4 Waiting for the future

…