1. 程式人生 > >JavaScript基礎之流控制語句

JavaScript基礎之流控制語句

JavaScript中有一種語句叫做流控制語句,它能控制語句的開始、結束,控制程式的執行。

if語句

if語句是常用的一種控制語句,它的格式是:

if (表示式) {語句1} else {語句2}

其中,表示式的值不一定是布林值,JavaScript的Boolean()會將表示式轉換成布林值,若轉換成的布林值結果為true,則執行語句1,相反,若布林值為false,則執行語句2.

var a = 2;
if (a > 0) {
    alert("a的值大於0"); /* 彈出"a的值大於0"  */
} else {
    alert("a的值小於0");
}

如上,建議用程式碼塊將要執行的語句包括起來,即使語句只有一行。這樣做是為了消除人們的誤解,否則可能讓人分不清在不同條件下要執行哪些語句。

while語句

while是一種前測試迴圈語句,格式為:

while (表示式) {迴圈體}

在執行迴圈語句前,有個出口語句表示式,若表示式的值為true,則會迴圈執行語句,至到表示式的值為false為止,也就是說,只有當表示式的值為true時,才會執行語句,不管是一次也好,還是多次執行也罷。

var a = 0;
while (a < 3) {a++}

當a的值小於3時,就會執行中括號裡的語句a++,直到a的值大於等於3時,會中跳出迴圈,即,當a的值為3時,跳出迴圈。

do-while

do-while是一種後測試迴圈語句。

格式:

do {迴圈體} while (表示式)

do-while迴圈語句與while迴圈語句相似,只是有一個最大不同點在於:do-while迴圈語句中,不管表示式的值是不是true,迴圈語句都會執行一次,常用於至少要執行一次的迴圈語句中。

var i = 0;
do {i++} while (i <3) //i的最終值為3

不管while中的表示式成不成立,都會執行一次i++,所以最終結果i的值至少為1。

for語句

for迴圈是常用的一種,格式為:

for (var i = 0; i < count; i++ ) {迴圈體}

以上定義了變數i並初始化為0,只有當表示式i < count為true時,才會進入for迴圈,因此不一定會執行語句,如果執行語句後,一定會對錶達式i++求值,求值後,再與count作比較,若此時i < count依然成立,則再次進入for迴圈,依此類推,若不成立,跳出for迴圈。

for (var i = 0, i < 3; i++) {console.log(i)}

輸出結果:0 1 2 3

for語句有三種書寫形式:

第一種:

for (var i = 0; i < count; i++) {迴圈體}

第二種:
var i;
for (i = 0; i < count; i++) {迴圈體}

第三種:
var i = 0;
for (; i < count;) {迴圈體; i++}


for in語句

for in語句是一種精準的迭代語句,用於列舉物件的屬性。格式:

for (var i in object) {迴圈體}

定義一個變數i,用於遍歷object物件的屬性,直到遍歷完物件的所有屬性為止,遍歷出的屬性名的順序是不可測的

若物件的值是null或undefined,則不執行迴圈體。

switch語句

switch語句又稱開關語句,格式:

switch (a) {
    case value: startment1
            break;  
    case value: startment2
            break;
     case value: startment3
            break;
     default:
             startment4    
}

其中a可以是各種資料型別,case後的value可以是常量、變數、也可以是表示式,如果a等於這個值value,則會執行後面的表示式startment,執行後,遇到break會跳出siwtch語句,如果省略break,不管後面的value是不是等於a的值,都會被執行,當所有的value都不等於a的值時,會執行default後面的語句。

在switch中可以合併兩個同種情況:

switch (a) {
    case value: 
 
    case value: alert("startmen1 or startment2")
            break;
     case value: startment3
            break;
     default:
             startment4    
}

如上,可以將兩種情況合併一起。

break語句與continue語句

在迴圈語句中,遇到break語句則會跳出迴圈語句,去強制執行循環語句後面的其它語句。

在迴圈語句中,遇到continue語句則會跳出本次迴圈,從迴圈的頂部繼續執行。