流程控制語句
JS中的程序是從上到下一行一行執(zhí)行的
通過流程控制語句可以控制程序執(zhí)行流程
使程序可以根據(jù)一定的條件來選擇執(zhí)行
語句的分類:
1.條件判斷語句
2.條件分支語句
3.循環(huán)語句
JS條件語句
通過條件來控制程序的走向撵渡,需要用到條件語句
運(yùn)算符
分類明細(xì)
算術(shù)運(yùn)算符+(加)强挫、 -(減)、 *(乘)褒繁、 /(除)、 %(求余)
賦值運(yùn)算符=馍忽、 +=棒坏、 -=、 *=遭笋、 /=坝冕、 %=
條件運(yùn)算符==、===坐梯、>徽诲、>=、<吵血、<=谎替、!=、&&(和)蹋辅、(或-雙豎線)钱贯、!(否)
條件判斷語句
使用條件判斷語句可以在執(zhí)行某個(gè)語句之前進(jìn)行判斷
如果條件成立才會(huì)執(zhí)行語句,條件不成立則語句不執(zhí)行
if語句
語法一:
if(條件表達(dá)式){? 語句...}
if語句在執(zhí)行時(shí)侦另,會(huì)先對(duì)條件表達(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ì)對(duì)if后的條件表達(dá)式進(jìn)行求值判斷
如果值為True旋廷,則執(zhí)行if后的語句
如果值為False鸠按,則執(zhí)行else后的語句
多重條件判斷語句
if語句
語法三:
if(條件表達(dá)式){? 語句...}elseif(條件表達(dá)式){? 語句...}elseif(條件表達(dá)式){? 語句...}else{? 語句...}
if...else? if ...else
當(dāng)該語句執(zhí)行時(shí),會(huì)從上到下依次對(duì)條件表達(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出開始執(zhí)行所有的代碼都會(huì)被執(zhí)行,我們可以在case的后邊跟著一個(gè)break關(guān)鍵字
這樣可以確保執(zhí)行執(zhí)行case后的語句鬼吵,而不會(huì)執(zhí)行其他的case
如果比較結(jié)果為False扣甲,則繼續(xù)向下比較
如果所有比較結(jié)果都為False,則會(huì)只執(zhí)行default后的語句
switch語句和if語句的功能實(shí)際上有重復(fù)的齿椅,使用switch可以實(shí)現(xiàn)if的功能琉挖,同樣使用if也可以實(shí)現(xiàn)switch的功能,所以我們使用時(shí)涣脚,可以根據(jù)自己的習(xí)慣選擇
循環(huán)語句
通過循環(huán)語句可以反復(fù)的執(zhí)行一段代碼多次
while循環(huán)
語法:
while(條件表達(dá)式){? ? 語句...}
while語句在執(zhí)行時(shí)示辈,先對(duì)條件判斷表達(dá)式進(jìn)行求值判斷,
如果為True遣蚀,則執(zhí)行循環(huán)體
循環(huán)體執(zhí)行完畢后矾麻,繼續(xù)對(duì)表達(dá)式進(jìn)行判斷,如果為True芭梯,則繼續(xù)執(zhí)行循環(huán)體险耀,一次類推
如果為False,則終止循環(huán)
do...while循環(huán)
語法:
do{? 語句...}while(條件表達(dá)式)
執(zhí)行流程:
do...while語句在執(zhí)行時(shí)玖喘,會(huì)先執(zhí)行循環(huán)體甩牺,
循環(huán)體執(zhí)行完畢以后,在對(duì)while后的條件表達(dá)式進(jìn)行判斷累奈,
如果結(jié)果為true贬派,則繼續(xù)執(zhí)行循環(huán)體急但,執(zhí)行完畢繼續(xù)判斷以此類推
如果結(jié)果為false,則終止循環(huán)
實(shí)際上這兩個(gè)語句功能類似搞乏,不同的是while是先判斷后執(zhí)行波桩,而do...while會(huì)先執(zhí)行后判斷,
do...while可以保證循環(huán)體至少執(zhí)行一次请敦,而while不能
for語句突委,也是一個(gè)循環(huán)語句,也稱為for循環(huán)
在for循環(huán)中冬三,為我們提供了專門的位置用來放三個(gè)表達(dá)式:
1.初始化表達(dá)式
2.條件表達(dá)式
3.更新表達(dá)式
語法:
for(①初始化表達(dá)式;②條件表達(dá)式;④更新表達(dá)式){
③語句...
}
for循環(huán)的執(zhí)行流程:
①執(zhí)行初始化表達(dá)式,初始化變量(初始化表達(dá)式只會(huì)執(zhí)行一次)
②執(zhí)行條件表達(dá)式缘缚,判斷是否執(zhí)行循環(huán)勾笆。
如果為true,則執(zhí)行循環(huán)
③如果為false桥滨,終止循環(huán)
④執(zhí)行更新表達(dá)式窝爪,更新表達(dá)式執(zhí)行完畢繼續(xù)重復(fù)
任意一種循環(huán)都可以互相嵌套
創(chuàng)建循環(huán)體,往往需要三個(gè)步驟
1.初始化一個(gè)變量
var n=0;
2.在循環(huán)體中設(shè)置一個(gè)表達(dá)式
3.定義一個(gè)更新表達(dá)式齐媒,每次更新初始化變量
break關(guān)鍵字可以用來退出switch或循環(huán)語句
不能在if語句中使用break和continue
break關(guān)鍵字蒲每,會(huì)立即終止離他最近的那個(gè)循環(huán)語句
continue關(guān)鍵字可以用來跳過當(dāng)次循環(huán)
同樣continue也是默認(rèn)只會(huì)對(duì)離他最近的循環(huán)循環(huán)起作用
可以為循環(huán)語句創(chuàng)建一個(gè)label,來標(biāo)識(shí)當(dāng)前的循環(huán)
label:循環(huán)語句
使用break語句時(shí)喻括,可以在break后跟著一個(gè)label邀杏,這樣break將會(huì)結(jié)束指定的循環(huán),而不是最近的