Menu
Coddy logo textTech

Verschachteltes If - Else

Teil des Abschnitts Grundlagen der R-Journey von Coddy — Lektion 25 von 78.

Manchmal reichen zwei Optionen nicht aus. Was ist, wenn Sie mehrere Bedingungen prüfen und jede anders behandeln müssen? Sie können eine if-else-Anweisung in einen anderen if- oder else-Block einfügen, um komplexere Entscheidungspfade zu erstellen.

score <- 85

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

R prüft zuerst, ob die Punktzahl 90 oder höher ist. Da 85 diese Bedingung nicht erfüllt, wechselt es zum else-Block.

Im Inneren prüft ein weiteres if, ob die Punktzahl mindestens 80 beträgt. Da 85 diesen Test besteht, wird "Grade: B" ausgegeben.

R bietet eine sauberere Möglichkeit, dies mit else if zu schreiben:

score <- 85

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

Beide Ansätze funktionieren auf die gleiche Weise, aber else if hält Ihren Code flacher und einfacher zu lesen. Sie können so viele else if-Blöcke wie nötig verketten, und R wird nur den ersten Block ausführen, dessen Bedingung wahr ist.

challenge icon

Aufgabe

Einfach

Erstellen Sie ein Ticketpreissystem mit verschachtelten if-else- oder else if-Anweisungen, um den Ticketpreis basierend auf dem Alter zu bestimmen.

Ihnen wird die folgende Variable zur Verfügung gestellt:

age <- 25

Schreiben Sie eine Reihe von Bedingungen, um den Ticketpreis basierend auf diesen Regeln zu bestimmen und auszugeben:

  • Wenn das Alter kleiner als 5 ist, geben Sie "Free" aus
  • Wenn das Alter zwischen 5 und 12 liegt (einschließlich), geben Sie "$5" aus
  • Wenn das Alter zwischen 13 und 17 liegt (einschließlich), geben Sie "$8" aus
  • Wenn das Alter zwischen 18 und 64 liegt (einschließlich), geben Sie "$12" aus
  • Wenn das Alter 65 oder älter ist, geben Sie "$7" aus

Verwenden Sie die Funktion print() für Ihre Ausgabe.

Spickzettel

Sie können if-else-Anweisungen ineinander verschachteln, um mehrere Bedingungen zu prüfen:

score <- 85

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

Ein saubererer Ansatz ist die Verwendung von else if, um mehrere Bedingungen zu verketten:

score <- 85

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

R wertet Bedingungen der Reihe nach aus und führt nur den ersten Block aus, dessen Bedingung wahr ist. Sie können so viele else if-Blöcke wie nötig verketten.

Probier es selbst

# Bereitgestellte Variable
age <- 25

# TODO: Schreiben Sie Ihren Code unten
# Verwenden Sie verschachtelte if-else- oder else-if-Anweisungen, um den Ticketpreis zu bestimmen
# basierend auf den angegebenen Altersregeln
quiz iconTeste dich selbst

Diese Lektion enthält ein kurzes Quiz. Starte die Lektion, um es zu beantworten und deinen Fortschritt zu speichern.

Alle Lektionen in Grundlagen