Posted: 2004/11月/25 1:02下午 | IP記錄
|
|
|
使用循環(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…
|