Day 21- R語言for, while迴圈控制
(前言:內個,我只是個剛接觸程式設計的小萌新,如果內文內容或程式碼寫的不對,還請各位大大指教 Orz)
昨天已經學過了if
, ifelse
, switch
等流程控制的寫法,今天繼續學習for
, while
迴圈控制。
4. For迴圈控制
For的迴圈控制類型是重複,指定某序列在特定順序下重複操作
用很經典的九九乘法表來當作練習,程式碼如下:
for(i in 1:9){ #第一個for條件
for(x in 1:9){ #第二個for條件
if(i >= x){ #設定if條件,避免重複計算數字相同的乘法
result <- i * x #儲存計算結果至一個變數上
cat(i, "*", x, "=", result, " ") #用cat函數將數值、符號及計算結果結合起來
}
}
cat("\n")
}
輸出結果為:
剛剛在程式碼中有一行cat(“\n”)
,那一行程式碼代表「換行」,那為什麼要放在第二和第三個大括號中間呢?我有做了一些實驗:
---如果不放的話,輸出結果會全部黏在一起
---如果放在cat(i, "*", x, "=", result, " ")
後面,輸出結果會變成一行一行的的九九乘法表(大概45行左右)
---如果放在第一個大括弧後面的話,輸出結果還是一行一行的,不同的是,一組跟一組之間會多空一行 (例:一的乘法表一組,二的乘法表一組…)
---如果放在第二個大括弧後面,輸出結果就會像上面那樣
---如果放在最後一行就沒作用,跟沒放一樣
5. while迴圈控制While
的迴圈控制類型也是重複,代表意義為「根據某條件重複執行」
i <- 3
while(i <= 40) {
i <- i + 2
i < 50
print(i)
}
以上面程式碼為例,有一個變數i=3
,只要i小等於40就加2,一直加到50為上限,然後印出i 值。
最後,我們可以使用repeat
函數做類似while
的事情,只是要跳出迴圈時就要用break
來停止迴圈,如果有很多個混圈的話,可以使用next
函數強制程式跳到下一個迴圈。
參考資料: