所謂循環(huán),就是重復(fù)執(zhí)行一段代碼,計(jì)算機(jī)的判斷能力和人相比差的很遠(yuǎn),計(jì)算機(jī)更擅長(zhǎng)一件事情——不停的重復(fù)。而我們?cè)贘avaScript中把這叫做循環(huán)。下面讓我們來了解了解JavaScript里的循環(huán)。
js循環(huán)結(jié)構(gòu)有哪些
js循環(huán)結(jié)構(gòu)有三種
for循環(huán) ==> 用來多次遍歷代碼塊
while循環(huán) ==> 當(dāng)指定條件為true時(shí),循環(huán)代碼塊
do while ==> 當(dāng)指定條件偽true時(shí),循環(huán)代碼塊
1、for循環(huán)
for是由兩個(gè)部分組成,條件控制和循環(huán)體
語(yǔ)法:
for(初始化表達(dá)式;循環(huán)條件表達(dá)式;循環(huán)后的操作表達(dá)式){
需要重復(fù)的代碼塊;
}
for語(yǔ)句結(jié)構(gòu)如圖:
for循環(huán)的執(zhí)行順序
1.初始化表達(dá)式
- 循環(huán)條件表達(dá)式
- 需要重復(fù)的代碼塊
- 循環(huán)后的操作表達(dá)式
簡(jiǎn)單的for循環(huán),循環(huán)執(zhí)行一次會(huì)改變一個(gè)變量的值
舉例:輸出1到100的值
for(var i=1; i <= 100; i++){
//在循環(huán)開始時(shí)設(shè)置一個(gè)變量i;//定義運(yùn)行循環(huán)的條件i<=100;//每個(gè)循環(huán)執(zhí)行后,變量增加1
console.log(i);
}
2、while循環(huán)
while循環(huán)會(huì)重復(fù)執(zhí)行一段代碼,直到某個(gè)條件不再滿足。
語(yǔ)法:
while(條件表達(dá)式語(yǔ)句){
執(zhí)行的代碼塊;
}
while循環(huán)結(jié)構(gòu)如圖:
while執(zhí)行順序
當(dāng)我們的使用條件條件返回值是true,就會(huì)執(zhí)行大括號(hào)里面的代碼塊,執(zhí)行完大括號(hào)的語(yǔ)句之后,會(huì)重復(fù)大括號(hào)里的語(yǔ)句,直到判定條件返回值為false,才會(huì)結(jié)束循環(huán)。
案例:
var i = 0;
while (i < 10){
console.log(i);
i++;
}
//while循環(huán)會(huì)先判定條件,再根據(jù)條件是否成立達(dá)成決定是否進(jìn)入循環(huán)
//如果條件一開始就是false ,則不會(huì)進(jìn)入循環(huán)
缺點(diǎn):
使用while語(yǔ)句的時(shí)候,一定要寫大括號(hào)
如果沒有條件的話,會(huì)無限的運(yùn)行下去,造成死循環(huán)。
3、do while循環(huán)的結(jié)構(gòu)
do while 結(jié)構(gòu)的基本原理和while結(jié)構(gòu)是基本相同的,但是它保證循環(huán)體至少被執(zhí)行一次。因?yàn)樗窍葓?zhí)行代碼,后判斷條件
語(yǔ)法:
do {
執(zhí)行語(yǔ)句塊;
}
while(條件表達(dá)式語(yǔ)句);
do while 執(zhí)行順序:
先執(zhí)行一次code,再做判斷。與while循環(huán)不同,do while無論條件如何 都會(huì)執(zhí)行一次代碼
案例:
var i = 0;
do{
console.log(i);
i++;
}while(i<10);
while 和 do while的不同
while: 先判斷 再執(zhí)行 條件不成立 循環(huán)體 一遍都不執(zhí)行
do…while: 先執(zhí)行 再判斷 條件不成立 循環(huán)體 至少執(zhí)行一遍