R 循環(huán)

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

編程語言提供了更為復(fù)雜執(zhí)行路徑的多種控制結(jié)構(gòu)。

循環(huán)語句允許我們多次執(zhí)行一個(gè)語句或語句組,下面是大多數(shù)編程語言中循環(huán)語句的流程圖:

圖片.png

R 語言提供的循環(huán)類型有:

  • repeat 循環(huán)

  • while  循環(huán)

  • for    循環(huán)

R 語言提供的循環(huán)控制語句有:

  • break 語句

  • Next 語句

循環(huán)控制語句改變你代碼的執(zhí)行順序,通過它你可以實(shí)現(xiàn)代碼的跳轉(zhuǎn)。

循環(huán)類型

repeat

repeat 循環(huán)會(huì)一直執(zhí)行代碼,直到條件語句為 false 時(shí)才退出循環(huán),退出要使用到 break 語句。

語法格式如下:

repeat { 
    // 相關(guān)代碼 
    if(condition) {
       break
    }
}

以下示例在變量 cnt 為 5 時(shí)退出循環(huán),cnt 為計(jì)數(shù)變量:

v  ,
cnt  

 
   v
   cnt  cnt
   
   cnt

執(zhí)行以上代碼,輸入結(jié)果為:

[1] "Google" "Nhooo"
[1] "Google" "Nhooo"
[1] "Google" "Nhooo"
[1] "Google" "Nhooo"

while

只要給定的條件為 true,R 語言中的 while 循環(huán)語句會(huì)重復(fù)執(zhí)行一個(gè)目標(biāo)語句。

語法格式如下:

while(condition)
{
   statement(s);
}

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

condition 可以是任意的表達(dá)式,當(dāng)為任意非零值時(shí)都為 true。當(dāng)條件為 true 時(shí)執(zhí)行循環(huán)。 當(dāng)條件為 false 時(shí),退出循環(huán),程序流將繼續(xù)執(zhí)行緊接著循環(huán)的下一條語句。

以下示例在在變量 cnt 小于 7 時(shí)輸出 while 語句塊中的內(nèi)容,cnt 為計(jì)數(shù)變量:

v  ,
cnt  

 cnt   
   v
   cnt  cnt

執(zhí)行以上代碼,輸入結(jié)果為:

[1] "Google" "Nhooo"
[1] "Google" "Nhooo"
[1] "Google" "Nhooo"
[1] "Google" "Nhooo"
[1] "Google" "Nhooo"

for

R 編程語言中 for 循環(huán)語句可以重復(fù)執(zhí)行指定語句,重復(fù)次數(shù)可在 for 語句中控制。

語法格式如下:

for (value in vector) {
    statements
}

R 語言的 for 循環(huán)特別靈活,不僅可以循環(huán)整數(shù)變量,還可以對(duì)字符向量,邏輯向量,列表等數(shù)據(jù)類型進(jìn)行迭代。

以下示例輸出 26 個(gè)字母對(duì)前面四個(gè)字母:

v  
  i  v 
   i

執(zhí)行以上代碼,輸入結(jié)果為:

[1] "A"
[1] "B"
[1] "C"
[1] "D"

循環(huán)控制

break

R 語言的 break 語句插入在循環(huán)體中,用于退出當(dāng)前循環(huán)或語句,并開始腳本執(zhí)行緊接著的語句。

如果你使用循環(huán)嵌套,break 語句將停止最內(nèi)層循環(huán)的執(zhí)行,并開始執(zhí)行的外層的循環(huán)語句。

break 也常用語 switch  語句中。

語法格式如下:

break

以下示例在 變量 cnt 為 5 時(shí)使用 break 退出循環(huán),cnt 為計(jì)數(shù)變量:

v <- c("Google","Nhooo") cnt <- 2 repeat {   print(v)   cnt <- cnt+1     if(cnt > 5) {      break   } }

執(zhí)行以上代碼,輸入結(jié)果為:

[1] "Google" "Nhooo"
[1] "Google" "Nhooo"
[1] "Google" "Nhooo"
[1] "Google" "Nhooo"

next

next 語句用于跳過當(dāng)前循環(huán),開始下一次循環(huán)(類似其他語言的 continue)。

語法格式如下:

next

以下示例輸出 26 個(gè)字母的前面 6 個(gè)字母,在字母為 D 的時(shí)候跳過當(dāng)前的循環(huán),進(jìn)行下一次循環(huán):

v  
  i  v 
   
    i     
      
   
   i

執(zhí)行以上代碼,輸入結(jié)果為:

[1] "A"
[1] "B"
[1] "C"
[1] "E"
[1] "F"
丰满人妻一级特黄a大片,午夜无码免费福利一级,欧美亚洲精品在线,国产婷婷成人久久Av免费高清