流程控制語句
- JS中的程序是從上到下一行一行執(zhí)行的?
- 通過流程控制語句可以控制程序執(zhí)行流程,使程序可以根據(jù)一定的條件來選擇執(zhí)行
- 語句的分類:? ? ??
1.條件判斷語句if/else
2.條件分支語句switch/case
3.循環(huán)語句while for do...while
條件判斷語句
- 使用條件判斷語句可以在執(zhí)行某個(gè)語句之前進(jìn)行判斷,
? 如果條件成立才會(huì)執(zhí)行語句,條件不成立則語句不執(zhí)行。
- if語句??
? ? ?- 語法一:? ? ? if(條件表達(dá)式){
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 語句...
? ? ? ? ? ? ? ? ? ? ? ? ? ?}
? if語句在執(zhí)行時(shí),會(huì)先對條件表達(dá)式進(jìn)行求值判斷,
? 如果條件表達(dá)式的值為true,則執(zhí)行if后的語句,
? 如果條件表達(dá)式的值為false,則不會(huì)執(zhí)行if后的語句。? ? ?
? if語句只能控制緊隨其后的那個(gè)語句,
? 如果希望if語句可以控制多條語句,可以將這些語句統(tǒng)一放到代碼塊中? ? ??
? if語句后的代碼塊(即{})不是必須的,但是在開發(fā)中盡量寫上代碼塊,即使? ? if后只有一條語句??
? - 語法二:
? ? ? if(條件表達(dá)式){
? ? ? ? 語句...
}else{
? ? ? ? 語句...
}
? if...else...語句
? ? ? 當(dāng)該語句執(zhí)行時(shí),會(huì)先對if后的條件表達(dá)式進(jìn)行求值判斷,
? ? ? ? 如果該值為true,則執(zhí)行if后的語句
? ? ? ? 如果該值為false,則執(zhí)行else后的語句


多重條件判斷語句
if語句
? 語法三:? ? ? if(條件表達(dá)式){
? ? ? ? 語句...
? ? ? }else if(條件表達(dá)式){
? ? ? ? 語句...
? ? ? }else if(條件表達(dá)式){
? ? ? ? 語句...
}else{
? ? ? ? 語句...
}
if...else if...else
? ? ? ? 當(dāng)該語句執(zhí)行時(shí),會(huì)從上到下依次對條件表達(dá)式進(jìn)行求值判斷
? ? ? ? 如果值為true,則執(zhí)行當(dāng)前語句。
? ? ? ? 如果值為false,則繼續(xù)向下判斷。
? ? ? ? 如果所有的條件都不滿足,則執(zhí)行最后一個(gè)else后的語句
? ? ? ? 該語句中,只會(huì)有一個(gè)代碼塊被執(zhí)行,一旦代碼塊執(zhí)行了,則直接結(jié)束語句
條件分支語句也叫switch語句
? 語法:? ? ? switch(條件表達(dá)式){
? ? ? ? case 表達(dá)式:
? ? ? ? ? ? 語句...
break;
? ? ? case 表達(dá)式:
? ? ? ? ? ? 語句...
break;
default:
? ? ? ? ? ? 語句...
break;
}
? 執(zhí)行流程:? ? ? switch...case..語句
? ? ? 在執(zhí)行時(shí)會(huì)依次將case后的表達(dá)式的值和switch后的條件表達(dá)式的值進(jìn)行全等比較,
? ? ? ? 如果比較結(jié)果為true,則從當(dāng)前case處開始執(zhí)行代碼。
? ? ? ? ? ? 當(dāng)前case后的所有的代碼都會(huì)執(zhí)行,我們可以在case的后邊跟著一個(gè)break關(guān)鍵字,
? ? ? ? ? ? 這樣可以確保只會(huì)執(zhí)行當(dāng)前case后的語句,而不會(huì)執(zhí)行其他的case
? ? ? ? 如果比較結(jié)果為false,則繼續(xù)向下比較
? ? ? ? 如果所有的比較結(jié)果都為false,則只執(zhí)行default后的語句? switch語句和if語句的功能實(shí)際上有重復(fù)的,使用switch可以實(shí)現(xiàn)if的功能,同樣使用if也可以實(shí)現(xiàn)switch的功能,所以我們使用時(shí),可以根據(jù)自己的習(xí)慣選擇。

