Menu
Coddy logo textTech

ネストされた If - Else

CoddyのRジャーニー「基礎」セクションの一部 — レッスン 25/78。

時には、2つの選択肢だけでは不十分なことがあります。複数の条件をチェックし、それぞれを異なる方法で処理する必要がある場合はどうすればよいでしょうか?別の if または else ブロックの中に if-else 文を配置することで、より複雑な決定パスを作成できます。

score <- 85

if (score >= 90) {
  print("Grade: A")
} else {
  if (score >= 80) {
    print("Grade: B")
  } else {
    print("Grade: C or below")
  }
}

Rはまず、スコアが90以上かどうかをチェックします。85はその条件を満たさないため、elseブロックに移動します。

内部では、別の if がスコアが少なくとも80であるかどうかをチェックします。85はこのテストに合格するため、"Grade: B" と出力されます。

Rは、else ifを使用してこれをより簡潔に記述する方法を提供しています:

score <- 85

if (score >= 90) {
  print("Grade: A")
} else if (score >= 80) {
  print("Grade: B")
} else {
  print("Grade: C or below")
}

どちらのアプローチも同じように動作しますが、else if を使用するとコードがよりフラットに保たれ、読みやすくなります。必要な数だけ else if ブロックを連結することができ、R は条件が真(true)である最初のブロックのみを実行します。

challenge icon

チャレンジ

簡単

年齢に基づいてチケット料金を決定するために、ネストされた if-else または else if ステートメントを使用してチケット料金システムを作成してください。

以下の変数が提供されています:

age <- 25

以下のルールに基づいてチケット料金を決定し、出力するための一連の条件式を記述してください:

  • 年齢が 5 未満の場合は、"Free" と出力してください
  • 年齢が 5 から 12(含む)の場合は、"$5" と出力してください
  • 年齢が 13 から 17(含む)の場合は、"$8" と出力してください
  • 年齢が 18 から 64(含む)の場合は、"$12" と出力してください
  • 年齢が 65 以上の場合は、"$7" と出力してください

出力には print() 関数を使用してください。

チートシート

if-else文を入れ子(ネスト)にして、複数の条件をチェックすることができます:

score <- 85

if (score >= 90) {
  print("Grade: A")
} else {
  if (score >= 80) {
    print("Grade: B")
  } else {
    print("Grade: C or below")
  }
}

よりすっきりとした方法は、else ifを使用して複数の条件を連結することです:

score <- 85

if (score >= 90) {
  print("Grade: A")
} else if (score >= 80) {
  print("Grade: B")
} else {
  print("Grade: C or below")
}

Rは条件を順番に評価し、条件が真(true)である最初のブロックのみを実行します。必要に応じて、いくつでもelse ifブロックを連結できます。

自分で試してみよう

# 提供された変数
age <- 25

# TODO: 以下にコードを記述してください
# 入れ子になった if-else または else if 文を使用して、チケット料金を決定してください
# 提供された年齢ルールに基づいて
quiz icon腕試し

このレッスンには短いクイズがあります。レッスンを始めて解答し、進捗を記録しましょう。

基礎のすべてのレッスン