DIV CSS 佈局教程網

3.7 循環結構詳解
編輯:JavaScript基礎知識     

我們從上一節課知道,JavaScript循環結構總有3種:

  • (1)while語句;
  • (2)do……while語句;
  • (3)for語句;

下面,我們對這些循環結構進行逐一講解。

一、while語句

while語句是條件判斷語句,也是循環語句。

語法:

 
while(條件表達式語句)
{
    執行語句塊;
}

說明:

當“條件表達式語句”的返回值為true時,就會執行大括號“{}”中的語句塊,當執行完大括號“{}”的語句塊後,再次檢測條件表達式的返回值,如果返回值還為true,則重復執行大括號“{}”中的語句塊,直到返回值為false時,才結束整個循環過程,接著往下執行while代碼段後面的程序代碼。

舉例:計算1+2+3+…+100的值

在線測試
 
<!DOCTYPE html> 
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
    <title></title>
    <script type="text/javascript">
        var n=1;
        var sum=0;
        while(n<=100)
        {
            sum+=n;    //等價於sum=sum+n;
            n++;
        }
        document.write("1+2+3+…+100="+sum);
    </script>
</head>
<body>
</body>
</html>

在浏覽器預覽效果如下:

使用while語句要注意以下幾點:

(1)應該使用大括號“{}”包含多條語句,即使是一條語句也最好使用大括號;

(2)在循環體中應該包含使得循環可以退出的語句,比如上面的“i++”。對於循環體,要是沒有條件,循環就會無休止地運作下去,變成一個“死循環”,從而可能導致浏覽器崩潰;

二、do…while語句

“do…while語句”跟while語句是非常類似的,唯一的區別在於:while語句先判斷是否符合條件,然後再執行循環體語句;do…while語句先執行循環體語句一次,然後再判斷是否符合條件。

語法:

 
do
{
    執行語句塊;
}
while(條件表達式語句);

說明:

do…while語句是先無條件執行循環體一次再判斷是否符合條件的,如果符合條件,則重復執行循環體,如果不符合條件,則退出循環。

do…while語句結尾處的while條件語句的括號後有一個分號“;”,該分號一定不能省略,這是初學者非常非常容易忽略的一點,大家千萬要記得呀。

舉例:

在線測試
 
<!DOCTYPE html> 
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
    <title></title>
    <script type="text/javascript">
        var n=1;
        var sum=0;
        do
        {
            sum+=n;    //等價於sum=sum+n;
            n++;
        }
        while(n<=100)
        document.write("1+2+3+…+100="+sum);
</script>
</head>
<body>
</body>
</html>

在浏覽器預覽效果如下:

分析:

大家拿上面一個例子和while語句的例子對比一下就知道,while語句和do…while語句是可以轉換的。

在此總結一下兩者之間的區別:

(1)do…while語句和while語句是可以相互轉換的;

(2)do…while語句將先執行一遍循環體中的語句,然後才判斷條件表達式的真假。這是它與while語句的本質區別;

三、for循環

for語句通常由2部分組成:一是“條件控制部分”,二是“循環體”。

語法:

 
for(初始化表達式;循環條件表達式;循環後的操作表達式)
{
    執行語句塊;
}

說明:

在使用for循環之前要先設定一個計數器變量,可以在for循環之前定義,也可以在使用時直接進行定義。

上面的語法中,“初始化表達式”表示計數器變量的初始值;“循環條件表達式”是一個計數器變量的表達式,決定了計數器的最大值;

要想理解上面的語法,還不如直接看個例子。

舉例:

在線測試
 
<!DOCTYPE html> 
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
    <title></title>
    <script type="text/javascript">
        for(var i=0;i<5;i++ )
        {
            document.write(i+"<br/>");
        }
</script>
</head>
<body>
</body>
</html>

在浏覽器預覽效果如下:

分析:

 
for(var i=0;i<5;i++ )
{
    document.write(i+"<br/>");
}

其實上面這段代碼等價於下面這段代碼:

 
while(i<5)
{
    document.write(i+"<br/>");
    i++;
}

大家可以在“在線測試”的代碼中修改並測試一下效果。

對於for語句的語法形式大家可能一時接受不來,但是大家慢慢實踐多了就會記住了。

疑問

1、為什麼會出現死循環?

在使用for語句時,需要保證循環可以正常結束,也就是保證循環條件的結果存在不為true的情況,否則循環體會無限地執行下去,從而出現死循環現象。

例如:

 
i=5;
while(i!=4)
{
    document.write(i+"<br/>");
    i++;
}

上面這段代碼就沒有結束條件,因此會無限地執行下去。在JavaScript入門教程學習中,大家在寫for語句的時候要特別地注意一下。

XML學習教程| jQuery入門知識| AJAX入門| Dreamweaver教程| Fireworks入門知識| SEO技巧| SEO優化集錦|
Copyright © DIV+CSS佈局教程網 All Rights Reserved