RForループ


Forループ

forループは、シーケンスを反復処理するために使用されます

for (x in 1:10) {
  print(x)
}

これはfor、他のプログラミング言語のキーワードとは異なり、他のオブジェクト指向プログラミング言語で見られるイテレータメソッドのように機能します。

ループを使用forすると、ベクトル、配列、リストなどの項目ごとに1回ずつ、一連​​のステートメントを実行できます。

リストベクトルなどについては、後の章で学習します。

リスト内のすべてのアイテムを印刷します。

fruits <- list("apple", "banana", "cherry")

for (x in fruits) {
  print(x)
}

サイコロの数を印刷します。

dice <- c(1, 2, 3, 4, 5, 6)

for (x in dice) {
  print(x)
}

ループのfor場合のように、ループに事前に設定するインデックス変数は必要ありませんwhile


壊す

このbreakステートメントを使用すると、すべてのアイテムをループする前にループを停止できます。

「チェリー」でループを停止します。

fruits <- list("apple", "banana", "cherry")

for (x in fruits) {
  if (x == "cherry") {
    break
  }
  print(x)
}

が「cherry」()に等しいbreak場合にステートメント を使用してループを終了することを選択したため、ループは「cherry」で停止しますxx == "cherry"


このnextステートメントを使用すると、ループを終了せずに反復をスキップできます。

「バナナ」をスキップ:

fruits <- list("apple", "banana", "cherry")

for (x in fruits) {
  if (x == "banana") {
    next
  }
  print(x)
}

ループが「バナナ」を通過すると、それをスキップしてループを続行します。


Yahtzee!

もし..それ以外の場合はForループと組み合わせる

実用的な例を示すために、Yahtzeeのゲームをプレイするとしましょう!

「Yahtzee!」を印刷します サイコロの数が6の場合:

dice <- 1:6

for(x in dice) {
  if (x == 6) {
    print(paste("The dice number is", x, "Yahtzee!"))
  } else {
    print(paste("The dice number is", x, "Not Yahtzee"))
  }
}

ループが1から5の範囲の値に達すると、「NoYahtzee」とその番号が出力されます。値6に達すると、「Yahtzee!」と出力されます。とその数。


ネストされたループ

ループ内にループを含めることもできます。

リスト内の各果物の形容詞を印刷します。

adj <- list("red", "big", "tasty")

fruits <- list("apple", "banana", "cherry")
  for (x in adj) {
    for (y in fruits) {
      print(paste(x, y))
  }
}