從零開始當工程師 – 迴圈是什麼

前言

前面的幾篇文章已經讓大家對程式有了一個基本的開始了

這一次要來介紹的主角 – 「迴圈」

主要是用來進行一些重複性作業

本篇會介紹到一些常見的迴圈類型,以及一些適用的場合

迴圈常見類型

For

for 迴圈通常會搭配一個變數進行判斷 (通常是用 int 整數類型)

for(int i=1; i<n ;i++ )
{
    迴圈內要執行的
}

i++ ➡ 遞增運算子,意思是下一次遇到時候會+1 ,有別於 n+=1是馬上加

While

基本的用法如下,要記得的是條件必須為可以回傳布林值 true false的

像是之前講到的比較運算子 (大於、小於、等於…)

while(條件){
    迴圈內要執行的
}

迴圈控制的參數

兩個參數可以搭配迴圈來使用的,以符合各種不同的狀況

break

可以讓迴圈強制結束,不用管條件如何 !!

continue

跳過本次迴圈,直接進入下一次迴圈 (條件判斷)

舉例來說 (這裡用JS來解釋一下)

for(let i=0; i<10; i++){
   if(i%2==0){    //對2取餘數
      continue;
   }
   console.log(i)   //在主控台列印出數字
}

這樣的結果就會只印出 1,3,5,7,9

因為能被2除之後餘0的 i 都被 continue 扔到下一次迴圈裡面了

一些相關名詞解釋

巢狀迴圈

巢狀迴圈其實就是在複數的迴圈包在一起,就像大腸包小腸一樣(?)

需要注意的是,這種寫法對於效能來說相當可怕,需要謹慎使用!!

for(條件){
    for(條件2){
       迴圈裡面
    }
}

無窮迴圈

新手蠻容易發生的錯誤 (我…有時候不小心也會)

定義就是因為條件無法滿足,而永遠不會結束的迴圈

➡ 理論上不會結束,但通常會因為超過時間或是記憶體空間不足而導致程式crash掉

常見的原因有

for(int i=0; i<10; i++){    //照理來說只會進行10次 0~9
   i = 5    //改動到判斷參數,將 i 賦值 5,導致每次判斷都用5來判斷 (除了第一次的0)
}

boolean result = true
while(result){   //這裡用result這個布林來當判斷沒問題
   做些別的事    //但底下的程式卻沒有一個地方會將result值變成false,導致條件一直成立
}

結論

其實寫這系列的文章對筆者我也有好處的

需要重新整理一些視為理所當然的知識,其實也是一種考驗

🧡如果這篇文章有幫上你的一點點忙,那是我的榮幸

🧡收藏文章或幫我分享,我都會很感謝的

✅如有任何疑問,歡迎透過留言或messenger讓我知道 !

發佈留言

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *