iT邦幫忙

2024 iThome 鐵人賽

DAY 16
0
自我挑戰組

R語言初學紀錄系列 第 16

DAY16-R語言 條件判斷與邏輯操作part.2

  • 分享至 

  • xImage
  •  

前言:條件判斷的第二篇!今天要學習控制結構中的第二部份:迴圈與重複操作。以下開始啦,如果內容有哪些錯誤的地方,請多多包涵~


正文開始-->
迴圈指令主要有以下幾種,包括for、while、repeat、break以及next

  • for:通常為重複執行某個已設定好的序列。語句寫法為
    for (單一變數 in 參數向量){ 程式碼 }
    使用範例:
    https://ithelp.ithome.com.tw/upload/images/20240918/20169228wDJMPeFBkj.png

  • while:通常為限定在某個條件下時,才會重複執行動作。語句寫法為

while (某種條件){
    # 每次重複要執行的程式
}

使用範例:
程式碼

MonthName <- month.name  #使用內建變數month.name
i <- 1
while (i <= 12) {
  print(MonthName[i])  #列印對應月份名稱
  i <- i + 1
}

結果:
https://ithelp.ithome.com.tw/upload/images/20240918/20169228h3gePSBa96.png
有一個重要的點是,如果沒有設置i <- i + 1這一行的話,while迴圈就會無限的重覆輸出"January",因為while括號中的條件永遠維持在(i<=12),因此會不斷的執行print(month.name[1])。

  • repeat:與while很像,判斷式的部份,可以比較自由寫在括號內任一地方,通常會搭配break來跳出迴圈。

  • break:功用為在某個條件下成立時,跳出迴圈。
    使用範例(repeat和break):
    程式碼

i <- 1
count <- 0
result <- 0
repeat {
  if (count >= 20) break  #當偶數達到20個時終止
  if (i %% 2 == 0) {      #如果是偶數
    result <- result + i
    count <- count + 1     #計算偶數的個數
  }
  i <- i + 1
}
result

結果:
https://ithelp.ithome.com.tw/upload/images/20240918/20169228VZaHfu6cJQ.png
使用 if (i %% 2 == 0)判斷數字是否為偶數,並在是偶數時加到 result 中。count則記錄偶數的數量,當 count 達到 20時,break 終止迴圈。

  • next:當某個條件成立時,省略此迴圈的作用,執行下一個迴圈。
    使用範例(next和break):
    程式碼
for (i in 1:10) {
  if (i %% 2 == 0) next  #如果是偶數,跳過此次迴圈
  print(i)  #列印奇數
}

結果:
https://ithelp.ithome.com.tw/upload/images/20240918/20169228KYrFeB4gT2.png
使用 i %% 2 == 0 判斷是否為偶數。如果是偶數,next 跳過 print(i),直接進入下一次迴圈。

參考:

  1. https://hackmd.io/@mutolisp/rJA2g8Jnb?type=view
  2. https://rpubs.com/skydome20/R-Note11-Control_Flow
  3. https://yaojenkuo.gitbooks.io/learn-r-the-easy-way/content/chapter9.html

上一篇
DAY15-R語言 條件判斷與邏輯操作part.1
下一篇
DAY17-R語言 基本函數part.1 命名與組成
系列文
R語言初學紀錄30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言