流程控制語句
JS中的程序是從上到下一行一行執行的
通過流程控制語句可以控制程序執行流程,
使程序可以根據一定的條件來選擇執行
語句的分類:
1.條件判斷語句
2.條件分支語句
3.循環語句
條件判斷語句:
使用條件判斷語句可以在執行某個語句之前進行判斷,
如果條件成立纔會執行語句,條件不成立則語句不執行。
if語句
語法一:
if(條件表達式){
語句...
}
if語句在執行時,會先對條件表達式進行求值判斷,
如果條件表達式的值爲true,則執行if後的語句,
如果條件表達式的值爲false,則不會執行if後的語句。
if語句只能控制緊隨其後的那個語句,
如果希望if語句可以控制多條語句,
可以將這些語句統一放到代碼塊中。
if語句後的代碼塊不是必須的,但是在開發中儘量寫上代碼塊,即使if後只有一條語句
條件分支語句
條件分支語句也叫switch語句
語法:
switch(條件表達式){
case 表達式:
語句...
break;
case 表達式:
語句...
break;
default:
語句...
break;
}
執行流程:
switch...case..語句
在執行時會依次將case後的表達式的值和switch後的條件表達式的值進行全等比較,
如果比較結果爲true,則從當前case處開始執行代碼。
當前case後的所有的代碼都會執行,我們可以在case的後邊跟着一個break關鍵字,
這樣可以確保只會執行當前case後的語句,而不會執行其他的case。
如果比較結果爲false,則繼續向下比較,如果所有的比較結果都爲false,則只執行default後的語句。
switch語句和if語句的功能實際上有重複的,使用switch可以實現if的功能,
同樣使用if也可以實現switch的功能,所以我們使用時,可以根據自己的習慣選擇。
循環語句:
通過循環語句可以反覆的執行一段代碼多次
while循環
語法:
while(條件表達式){
語句...
}
while語句在執行時,先對條件表達式進行求值判斷,如果值爲true,則執行循環體,
循環體執行完畢以後,繼續對錶達式進行判斷。
如果爲true,則繼續執行循環體,以此類推,如果值爲false,則終止循環。
do…while循環
語法:
do{
語句...
}while(條件表達式)
執行流程:
do...while語句在執行時,會先執行循環體,
循環體執行完畢以後,在對while後的條件表達式進行判斷,
如果結果爲true,則繼續執行循環體,執行完畢繼續判斷以此類推,如果結果爲false,則終止循環。
實際上這兩個語句功能類似,不同的是while是先判斷後執行,
而do...while會先執行後判斷,do...while可以保證循環體至少執行一次,而while不能。
//將條件表達式寫死爲true的循環,叫做死循環
for循環
for語句,也是一個循環語句,也稱爲for循環。
在for循環中,爲我們提供了專門的位置用來放三個表達式:
1.初始化表達式
2.條件表達式
3.更新表達式
for循環的語法:
for(①初始化表達式;②條件表達式;④更新表達式){
③語句...
}
for循環的執行流程:
①執行初始化表達式,初始化變量(初始化表達式只會執行一次)
②執行條件表達式,判斷是否執行循環。
如果爲true,則執行循環③
如果爲false,終止循環
④執行更新表達式,更新表達式執行完畢繼續重複②
如果在for循環中不寫任何的表達式,只寫兩個;此時循環是一個死循環會一直執行下去,慎用
嵌套for循環:
使用嵌套for循環可以打印圖形,乘法表等
break和continue:
break關鍵字可以用來退出switch或循環語句,不能在if語句中使用break和continue。
break關鍵字,會立即終止離他最近的那個循環語句,可以爲循環語句創建一個label,來標識當前的循環。
label:循環語句
使用break語句時,可以在break後跟着一個label,這樣break將會結束指定的循環,而不是最近的。
outer:
for(var i=0 ; i<5 ; i++){
console.log("@外層循環"+i)
for(var j=0 ; j<5; j++){
break outer;
console.log("內層循環:"+j);
}
}
continue關鍵字可以用來跳過當次循環,同樣continue也是默認只會對離他最近的循環循環起作用。