JavaScript循環(huán)結(jié)構(gòu)

引入:操場(chǎng)一圈是400米,在運(yùn)動(dòng)會(huì)的時(shí)候,2000米的跑步比賽,我們需要繞操場(chǎng)跑5圈,如下圖:

示意圖

這就是

一個(gè)循環(huán),那么,在這個(gè)過(guò)程中,其實(shí)我們動(dòng)作只是跑一圈,剩下的過(guò)程只是在重復(fù)。從計(jì)算機(jī)的角度來(lái)想,我們可不可以設(shè)定一個(gè)程序,讓他自動(dòng)跑5圈呢?可以的,用咱們今天要學(xué)習(xí)的循環(huán)結(jié)構(gòu)。循環(huán)結(jié)構(gòu)的意義就是讓代碼重復(fù)執(zhí)行。

一、while循環(huán)結(jié)構(gòu)

語(yǔ)法:

while(條件語(yǔ)句){

? ? 條件成立執(zhí)行的代碼

}?

例:對(duì)女朋友說(shuō)5句我愛(ài)你

// 那么既然是循環(huán),咱們需要設(shè)定幾個(gè)條件,首先是從哪開(kāi)始,每完成一次要進(jìn)行計(jì)數(shù),完成多少次停止。

vari=1;

while(i<=10){

document.write("我愛(ài)你!");

i++;

}

while循環(huán)結(jié)構(gòu)的具體流程:

while循環(huán)的運(yùn)行流程



while循環(huán)需要我們?cè)谘h(huán)外就將變量聲名好,在執(zhí)行代碼的過(guò)程中,一定要讓變量進(jìn)行變化,否則這個(gè)循環(huán)就會(huì)無(wú)休止的進(jìn)行下去。

不會(huì)停止的循環(huán)叫做死循環(huán),程序一直不會(huì)停止,cpu占用率越來(lái)越高,很容易造成系統(tǒng)崩潰。所以我們?cè)趯?xiě)代碼的時(shí)候一定避免寫(xiě)成死循環(huán)。

例:利用while循環(huán)中的變量輸出數(shù)字1~5

vari=1;

while(while<=5){

document.write(i);

i++;

}

二、do while循環(huán)結(jié)構(gòu)

do while 循環(huán)是while循環(huán)的變異體。循環(huán)流程相似,唯一不同的地方在于do while循環(huán)會(huì)先執(zhí)行一次,不管條件是否成立,先執(zhí)行一次,后面的流程和while循環(huán)一樣。

三、for循環(huán)結(jié)構(gòu)

語(yǔ)法:

for(聲明變量并賦初始值;條件表達(dá)式;每重復(fù)一次后變量的變化規(guī)律){

?? 重復(fù)執(zhí)行的代碼塊

}

# 在語(yǔ)法中的聲明變量并賦初始值,就是從哪里開(kāi)始重復(fù);條件表達(dá)式可以限定重復(fù)在什么時(shí)候停止(當(dāng)條件不成立的時(shí)候);通過(guò)每次重復(fù)變量的變化和條件表達(dá)式可以知道要重復(fù)多少次

例:輸出10句“我愛(ài)你”

for(vari=1;i<=10;i++){

? ? document.write("我愛(ài)你");

}

循環(huán)執(zhí)行過(guò)程分析:

首先i=1;然后進(jìn)行條件判斷i<=10;條件成立,所以運(yùn)行了大括號(hào)中的代碼-----第一次執(zhí)行接下來(lái)i++;然后i=2;再進(jìn)行條件判斷i<=10;條件成立,所以又運(yùn)行了大括號(hào)中的代碼------第二次執(zhí)行i++;i=3;條件判斷i<=10;條件成立,再次運(yùn)行------第三次執(zhí)行i++;i=4;條件判斷i<=10;條件成立,再次運(yùn)行------第四次運(yùn)行。。。

vararr=[10,20,30,40,50];

varsum=0;

for(variinarr) {

? ? sum+=arr[i];

}

alert(sum);

for循環(huán)中的初始值和變化可以不放在小括號(hào)中

vari=1;

for(;i<=5;){

? ? document.write(i);

? ? i++;

}

執(zhí)行流程是一樣的,只是寫(xiě)法不一樣。

在循環(huán)中,變量i的變化規(guī)律可以不是遞增,也可以遞減,也可以不是遞增1。。。總而言之,變量i的變化規(guī)律可以自定義。

例:求出1~10之間所有單數(shù)的和。

varsum=0;

for(vari=1;i<=10;i+=2){

? ? sum+=i;

}

alert(sum);// 25

for循環(huán)的運(yùn)行流程


循環(huán)中的跳轉(zhuǎn)關(guān)鍵字

在循環(huán)有兩個(gè)關(guān)鍵字可以改變循環(huán)執(zhí)行的流程。

continue關(guān)鍵字,可以跳過(guò)當(dāng)前這次的循環(huán),直接進(jìn)行下一次的循環(huán)。

for(vari=1;i<=5;i++){

? ? if(i==3){

? ? ? ? continue;// 當(dāng)i=3的時(shí)候,直接進(jìn)行下一次的循環(huán)

? ? }

? ? document.write(i);

}

// 最后結(jié)果是1245

break關(guān)鍵字,可終止循環(huán),直接讓整個(gè)循環(huán)結(jié)束運(yùn)行。

for(vari=1;i<=5;i++){

? ? if(i==3){

? ? ? ? break;// 當(dāng)i=3的時(shí)候,直接結(jié)束整個(gè)循環(huán)的運(yùn)行

? ? }

? ? document.write(i);

}

// 最后結(jié)果是12

運(yùn)行流程如下圖所示:

案例:

入職薪水10K,每年漲幅5%,50年后工資多少?

打印100以內(nèi) 7的倍數(shù)

打印100以內(nèi)的奇數(shù)

循環(huán)的嵌套

讓一段重復(fù)執(zhí)行代碼重復(fù)執(zhí)行,也就是設(shè)定一個(gè)大程序,讓多個(gè)人跑5圈。

for(var i=1;i<=5;i++){

? ? for(var j=1;j<=5;j++){

? ? ? ? document.write("第" + i + "個(gè)人跑第" + j + "圈<br>");

? ? }

}

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容