程序結(jié)構(gòu)
- 順序結(jié)構(gòu),選擇結(jié)構(gòu)和循環(huán)結(jié)構(gòu)是結(jié)構(gòu)化程序設(shè)計(jì)的三種基本結(jié)構(gòu)。
條件語(yǔ)句
- if條件語(yǔ)句
- if...else語(yǔ)句和if...elae if 語(yǔ)句多分支語(yǔ)句
- 關(guān)于 switch 語(yǔ)句的說(shuō)明:
- switch(表達(dá)式)中表達(dá)式的返回值必須是下述幾種類(lèi)型之一:byte,short,char, int,枚舉,String(JDK7 之后支持);
- case 子句中的值必須是常量,且所有 case 子句中的值應(yīng)是不同的;
- default 子句是可任選的,當(dāng)沒(méi)有匹配的 case 時(shí),執(zhí)行 default;
- break 語(yǔ)句用來(lái)在執(zhí)行完一個(gè) case 分支后使程序跳出 switch 語(yǔ)句塊;如果沒(méi)有 break,程序會(huì)順序執(zhí)行到 switch 結(jié)尾。
- if 和 switch 使用場(chǎng)景比較
1.if 語(yǔ)句使用場(chǎng)景
針對(duì)結(jié)果是 boolean 類(lèi)型的判斷
針對(duì)一個(gè)范圍的判斷
針對(duì)幾個(gè)常量值的判斷
- switch 語(yǔ)句使用場(chǎng)景
針對(duì)幾個(gè)常量值的判斷
循環(huán)語(yǔ)句
for循環(huán):
for(初始化語(yǔ)句;判斷條件語(yǔ)句;控制條件語(yǔ)句) {
循環(huán)語(yǔ)句體;
}while循環(huán):
初始化語(yǔ)句;
while(判斷條件語(yǔ)句){
循環(huán)體語(yǔ)句;
控制條件語(yǔ)句;
}
while和for沒(méi)有本質(zhì)區(qū)別,也沒(méi)有速度區(qū)別。在表達(dá)能力上二者完全等價(jià)。細(xì)微的區(qū)別在于for循環(huán)和while循環(huán)會(huì)在loop statement前多做一次conditional jump。do_while則不會(huì)。
跳轉(zhuǎn)語(yǔ)句
- break語(yǔ)句:
break語(yǔ)句會(huì)使運(yùn)行的程序立刻退出包含在最內(nèi)層的循環(huán)或者退出一個(gè)switch語(yǔ)句。
由于它是用來(lái)退出循環(huán)或者switch語(yǔ)句,所以只有當(dāng)它出現(xiàn)在這些語(yǔ)句時(shí),這種形式的break語(yǔ)句才是合法的。
for(var i=1;i<=10;i++) {
if(i==8) {
break;
}
document.write(i);
}
當(dāng)i=8的時(shí)候,直接退出for這個(gè)循環(huán)。這個(gè)循環(huán)將不再被執(zhí)行!
//輸出結(jié)果:1234567
- continue語(yǔ)句:
continue語(yǔ)句和break語(yǔ)句相似。所不同的是,它不是退出一個(gè)循環(huán),而是開(kāi)始循環(huán)的一次新迭代。
continue語(yǔ)句只能用在while語(yǔ)句、do/while語(yǔ)句、for語(yǔ)句、或者for/in語(yǔ)句的循環(huán)體內(nèi),在其它地方使用都會(huì)引起錯(cuò)誤!
for(var i=1;i<=10;i++) {
if(i==8) {
continue;
}
document.write(i);
}
當(dāng)i=8的時(shí)候,直接跳出本次for循環(huán)。下次繼續(xù)執(zhí)行。
//輸出結(jié)果:1234567910
- 1.for一般是在循環(huán)個(gè)數(shù)已知的情況下使用的
2.while一般是在循環(huán)個(gè)數(shù)未知,且循環(huán)受到嚴(yán)格控制的情況下使用的。
3.do-while一般也是在循環(huán)個(gè)數(shù)未知,但是它和while最大的不同點(diǎn)在于,不管循環(huán)的條件是什么,do-while都會(huì)至少執(zhí)行一次。