- 循環(huán)結(jié)構(gòu),就是根據(jù)某些給出的條件,重復(fù)的執(zhí)行同一段代碼
- 循環(huán)必須要有某些固定的內(nèi)容組成
- 初始化
- 條件判斷
- 要執(zhí)行的代碼
- 自身改變
WHILE 循環(huán)
while,中文叫 當(dāng)…時(shí),其實(shí)就是當(dāng)條件滿足時(shí)就執(zhí)行代碼,一旦不滿足了就不執(zhí)行了語(yǔ)法
while (條件) { 滿足條件就執(zhí)行 }-
因?yàn)闈M足條件就執(zhí)行,所以我們寫(xiě)的時(shí)候一定要注意,就是設(shè)定一個(gè)邊界值,不然就一直循環(huán)下去了
// 1. 初始化條件 var num = 0; // 2. 條件判斷 while (num < 10) { // 3. 要執(zhí)行的代碼 console.log('當(dāng)前的 num 的值是 ' + num) // 4. 自身改變 num = num + 1 }- 如果沒(méi)有自身改變,那么就會(huì)一直循環(huán)不停了
DO WHILE 循環(huán)
是一個(gè)和
while循環(huán)類似的循環(huán)while會(huì)先進(jìn)行條件判斷,滿足就執(zhí)行,不滿足直接就不執(zhí)行了但是
do while循環(huán)是,先不管條件,先執(zhí)行一回,然后在開(kāi)始進(jìn)行條件判斷-
語(yǔ)法:
do { 要執(zhí)行的代碼 } while (條件)// 下面這個(gè)代碼,條件一開(kāi)始就不滿足,但是依舊會(huì)執(zhí)行一次 do 后面 {} 內(nèi)部的代碼 var num = 10 do { console.log('我執(zhí)行了一次') num = num + 1 } while (num < 10)
FOR 循環(huán)
和
while和do while循環(huán)都不太一樣的一種循環(huán)結(jié)構(gòu)道理是和其他兩種一樣的,都是循環(huán)執(zhí)行代碼的
-
語(yǔ)法:
for (var i = 0; i < 10; i++) { 要執(zhí)行的代碼 }// 把初始化,條件判斷,自身改變,寫(xiě)在了一起 for (var i = 1; i <= 10; i++) { // 這里寫(xiě)的是要執(zhí)行的代碼 console.log(i) } // 控制臺(tái)會(huì)依次輸出 1 ~ 10 這個(gè)只是看起來(lái)不太舒服,但是用起來(lái)比較好用
應(yīng)用
打印100以內(nèi) 7的倍數(shù)
打印100以內(nèi)的奇數(shù)
入職薪水10K,每年漲幅5%,50年后工資多少?
強(qiáng)化練習(xí)1
打印100以內(nèi)所有偶數(shù)的和
求出1-1/2+1/3-1/4…..1/100的和 var i=1;
打印出1000-2000年中所有的閏年,并以每行四個(gè)數(shù)的形式輸出
-
使用
*打印三角形* ** *** **** ***** ****** ******* ******** *********
BREAK 終止循環(huán)
在循環(huán)沒(méi)有進(jìn)行完畢的時(shí)候,因?yàn)槲以O(shè)置的條件滿足,提前終止循環(huán)
比如:我要吃五個(gè)包子,吃到三個(gè)的時(shí)候,不能在吃了,我就停止吃包子這個(gè)事情
-
要終止循環(huán),就可以直接使用
break關(guān)鍵字for (var i = 1; i <= 5; i++) { // 沒(méi)循環(huán)一次,吃一個(gè)包子 console.log('我吃了一個(gè)包子') // 當(dāng) i 的值為 3 的時(shí)候,條件為 true,執(zhí)行 {} 里面的代碼終止循環(huán) // 循環(huán)就不會(huì)繼續(xù)向下執(zhí)行了,也就沒(méi)有 4 和 5 了 if (i === 3) { break } }
CONTINUE 結(jié)束本次循環(huán)
在循環(huán)中,把循環(huán)的本次跳過(guò)去,繼續(xù)執(zhí)行后續(xù)的循環(huán)
比如:吃五個(gè)包子,到第三個(gè)的時(shí)候,第三個(gè)掉地下了,不吃了,跳過(guò)第三個(gè),繼續(xù)吃第四個(gè)和第五個(gè)
-
跳過(guò)本次循環(huán),就可以使用
continue關(guān)鍵字for (var i = 1; i <= 5; i++) { // 當(dāng) i 的值為 3 的時(shí)候,執(zhí)行 {} 里面的代碼 // {} 里面有 continue,那么本次循環(huán)后面的代碼就都不執(zhí)行了 // 自動(dòng)算作 i 為 3 的這一次結(jié)束了,去繼續(xù)執(zhí)行 i = 4 的那次循環(huán)了 if (i === 3) { console.log('這個(gè)是第三個(gè)包子,掉地下了,我不吃了') continue } console.log('我吃了一個(gè)包子') }
強(qiáng)化練習(xí)2
- 輸出100-200之間所有的質(zhì)數(shù)
- 求1+2!+3!+...+20!的值
- 2! 表示 2 的階乘
2 * 1 - 3! 表示 3 的階乘
3 * 2 * 1
- 2! 表示 2 的階乘
- 完成一個(gè)三角形打印功能
- 完成一個(gè)梯形打印功能
強(qiáng)化練習(xí)3
- 有一個(gè)棋盤,有64個(gè)方格,在第一個(gè)方格里面放1粒芝麻重量是0.00001kg,第二個(gè)里面放2粒,第三個(gè)里面放4,棋盤上放的所有芝麻的重量