web前端-JavaScript 循環 -016

不同類型的循環

JavaScript 支持不同類型的循環:

  • for - 循環代碼塊一定的次數
  • for/in - 循環遍歷對象的屬性
  • while - 當指定的條件爲 true 時循環指定的代碼塊
  • do/while - 同樣當指定的條件爲 true 時循環指定的代碼塊

For 循環

for 循環是您在希望創建循環時常會用到的工具。
下面是 for 循環的語法:

for (語句 1; 語句 2; 語句 3)
  {
  被執行的代碼塊
  }

語句 1 (代碼塊)開始前執行 starts.
語句 2 定義運行循環(代碼塊)的條件
語句 3 在循環(代碼塊)已被執行之後執行
語句 1
通常我們會使用語句 1 初始化循環中所用的變量 (var i=0)。
語句 1 是可選的,也就是說不使用語句 1 也可以。
您可以在語句 1 中初始化任意(或者多個)值:

for (var i=0,len=cars.length; i<len; i++)
{ 
document.write(cars[i] + "<br>");
}

同時您還可以省略語句 1(比如在循環開始前已經設置了值時):

var i=2,len=cars.length;
for (; i<len; i++)
{ 
document.write(cars[i] + "<br>");
}

語句 2
通常語句 2 用於評估初始變量的條件。
語句 2 同樣是可選的。
如果語句 2 返回 true,則循環再次開始,如果返回 false,則循環將結束。
如果您省略了語句 2,那麼必須在循環內提供 break。否則循環就無法停下來。這樣有可能令瀏覽器崩潰。請在本教程稍後的章節閱讀有關 break 的內容。
語句 3
通常語句 3 會增加初始變量的值。
語句 3 也是可選的。
語句 3 有多種用法。增量可以是負數 (i–),或者更大 (i=i+15)。
語句 3 也可以省略(比如當循環內部有相應的代碼時):

var i=0,len=cars.length;
for (; i<len; )
{ 
document.write(cars[i] + "<br>");
i++;
}

For/In 循環

JavaScript for/in 語句循環遍歷對象的屬性:

var person={fname:"John",lname:"Doe",age:25}; 

for (x in person)
{
    txt=txt + person[x];
}

while 循環

while 循環會在指定條件爲真時循環執行代碼塊。
語法

while (條件)
  {
  需要執行的代碼
  }

如果您忘記增加條件中所用變量的值,該循環永遠不會結束。這可能導致瀏覽器崩潰。

do/while 循環

do/while 循環是 while 循環的變體。該循環會在檢查條件是否爲真之前執行一次代碼塊,然後如果條件爲真的話,就會重複這個循環。
語法

do
  {
  需要執行的代碼
  }
while (條件);

比較 for 和 while

本例中的循環使用 for 循環來顯示 cars 數組中的所有值:

cars=["BMW","Volvo","Saab","Ford"];
var i=0;
for (;cars[i];)
{
document.write(cars[i] + "<br>");
i++;
}

本例中的循環使用 while 循環來顯示 cars 數組中的所有值:

cars=["BMW","Volvo","Saab","Ford"];
var i=0;
while (cars[i])
{
document.write(cars[i] + "<br>");
i++;
}

Break 語句

我們已經在本教程之前的章節中見到過 break 語句。它用於跳出 switch() 語句。
break 語句可用於跳出循環。
break 語句跳出循環後,會繼續執行該循環之後的代碼(如果有的話):

for (i=0;i<10;i++)
  {
  if (i==3)
    {
    break;
    }
  x=x + "The number is " + i + "<br>";
  }

由於這個 if 語句只有一行代碼,所以可以省略花括號:

for (i=0;i<10;i++)
  {
  if (i==3) break;
  x=x + "The number is " + i + "<br>";
  }

Continue 語句

continue 語句中斷循環中的迭代,如果出現了指定的條件,然後繼續循環中的下一個迭代。 該例子跳過了值 3:

for (i=0;i<=10;i++)
 {
 if (i==3) continue;
  x=x + "The number is " + i + "<br>";
  }

JavaScript 標籤

正如您在 switch 語句那一章中看到的,可以對 JavaScript 語句進行標記。
如需標記 JavaScript 語句,請在語句之前加上冒號:

label:
statements

break 和 continue 語句僅僅是能夠跳出代碼塊的語句。
語法:

break labelname; 
continue labelname;

continue 語句(帶有或不帶標籤引用)只能用在循環中。
break 語句(不帶標籤引用),只能用在循環或 switch 中。
通過標籤引用,break 語句可用於跳出任何 JavaScript 代碼塊:

cars=["BMW","Volvo","Saab","Ford"];
list: 
{
document.write(cars[0] + "<br>"); 
document.write(cars[1] + "<br>"); 
document.write(cars[2] + "<br>"); 
break list;
document.write(cars[3] + "<br>"); 
document.write(cars[4] + "<br>"); 
document.write(cars[5] + "<br>"); 
}
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章