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

  • 循環(huán)結(jié)構(gòu),就是根據(jù)某些給出的條件,重復(fù)的執(zhí)行同一段代碼
  • 循環(huán)必須要有某些固定的內(nèi)容組成
    1. 初始化
    2. 條件判斷
    3. 要執(zhí)行的代碼
    4. 自身改變

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)

  • whiledo 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
  • 完成一個(gè)三角形打印功能
  • 完成一個(gè)梯形打印功能

強(qiáng)化練習(xí)3

  • 有一個(gè)棋盤,有64個(gè)方格,在第一個(gè)方格里面放1粒芝麻重量是0.00001kg,第二個(gè)里面放2粒,第三個(gè)里面放4,棋盤上放的所有芝麻的重量
最后編輯于
?著作權(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ù)。

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