天天看點

R 循環

有的時候,我們可能需要多次執行同一塊代碼。一般情況下,語句是按順序執行的:函數中的第一個語句先執行,接着是第二個語句,依此類推。

程式設計語言提供了更為複雜執行路徑的多種控制結構。

循環語句允許我們多次執行一個語句或語句組,下面是大多數程式設計語言中循環語句的流程圖:

R 循環

R 語言提供的循環類型有:

repeat 循環

while 循環

for 循環

R 語言提供的循環控制語句有:

break 語句

Next 語句

循環控制語句改變你代碼的執行順序,通過它你可以實作代碼的跳轉。

repeat 循環會一直執行代碼,直到條件語句為 false 時才退出循環,退出要使用到 break 語句。

文法格式如下:

以下執行個體在變量 cnt 為 5 時退出循環,cnt 為計數變量:

v <- c("Google","Runoob")

cnt <- 2

repeat {

   print(v)

   cnt <- cnt+1

   if(cnt > 5) {

      break

   }

}

執行以上代碼,輸入結果為:

隻要給定的條件為 true,R 語言中的 while 循環語句會重複執行一個目智語句。

在這裡,statement(s) 可以是一個單獨的語句,也可以是幾個語句組成的代碼塊。

condition 可以是任意的表達式,當為任意非零值時都為 true。當條件為 true 時執行循環。 當條件為 false 時,退出循環,程式流将繼續執行緊接着循環的下一條語句。

以下執行個體在在變量 cnt 小于 7 時輸出 while 語句塊中的内容,cnt 為計數變量:

while (cnt < 7) {

   cnt = cnt + 1

R 程式設計語言中 for 循環語句可以重複執行指定語句,重複次數可在 for 語句中控制。

R 語言的 for 循環特别靈活,不僅可以循環整數變量,還可以對字元向量,邏輯向量,清單等資料類型進行疊代。

以下執行個體輸出 26 個字母對前面四個字母:

v <- LETTERS[1:4]

for ( i in v) {

   print(i)

R 語言的 break 語句插入在循環體中,用于退出目前循環或語句,并開始腳本執行緊接着的語句。

如果你使用循環嵌套,break 語句将停止最内層循環的執行,并開始執行的外層的循環語句。

break 也常用語 switch 語句中。

以下執行個體在變量 cnt 為 5 時使用 break 退出循環,cnt 為計數變量:

next 語句用于跳過目前循環,開始下一次循環(類似其他語言的 continue)。

以下執行個體輸出 26 個字母的前面 6 個字母,在字母為 D 的時候跳過目前的循環,進行下一次循環:

v <- LETTERS[1:6]

   if (i == "D") {  # D 不會輸出,跳過這次循環,進入下一次

      next