有的時候,我們可能需要多次執行同一塊代碼。一般情況下,語句是按順序執行的:函數中的第一個語句先執行,接着是第二個語句,依此類推。
程式設計語言提供了更為複雜執行路徑的多種控制結構。
循環語句允許我們多次執行一個語句或語句組,下面是大多數程式設計語言中循環語句的流程圖:
![](https://img.laitimes.com/img/__Qf2AjLwojIjJCLyojI0JCLicmbw5Ccv9GbvwlMx8CX1EDMy8CXzRWYvxGc19CX05WZ052bj1Cc39CXt92YuI2bv5Wdy5yd3d3Lc9CX6MHc0RHaiojIsJye.png)
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