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.
Aufgabe
EinfachErstellen 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 <- 25Schreiben 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 AltersregelnDiese Lektion enthält ein kurzes Quiz. Starte die Lektion, um es zu beantworten und deinen Fortschritt zu speichern.
Alle Lektionen in Grundlagen
4Operatoren Teil 2
Logische Operatoren (AND, OR)Logische Operatoren Teil 2 (NOT)Wiederholung – Einfache LogikVektorisierte Logik Teil 1Vektorisierte Logik Teil 27Rechnungs-Split-Rechner
WillkommensnachrichtBenutzereingaben abfragen10FizzBuzz mit einer Besonderheit
SpielübersichtDie FizzBuzz-Funktion13Vektoren für Fortgeschrittene
Vektor-Slicing und IndizierungLogische IndizierungVektorarithmetik & RecyclingDer %in%-Operator2Variablen und Datentypen
Numerischer DatentypGanzzahl-DatentypZeichen-DatentypLogischer DatentypDatentypen prüfenBenennungskonventionenFehlende Werte: NAZusammenfassung – Variablenerstellung5Entscheidungsfindung
If-AnweisungIf - ElseWiederholung - Einfacher TaschenrechnerVerschachteltes If - Else8Schleifen
For-SchleifeWhile-SchleifeBreakNext (Continue)Rückblick - FakultätSequenzgenerierung (seq, :)Verschachtelte SchleifenRückblick - Dynamische Eingabe3Operatoren Teil 1
Arithmetische OperatorenGanzzahlige Division und ModuloZuweisungsoperatorenWiederholung - Einfache MathematikVergleichsoperatoren6Grundlagen der Ein- und Ausgabe
Print-AusgabeCat zur AusgabeAusgabe mit VariablenEingabe lesen mit readline()Grundlagen der TypumwandlungWiederholung – AltersrechnerWiederholung – Wahr oder Falsch9Funktionen
Funktionen deklarierenFunktionsargumenteRückgabewerteWiederholung - Sigma-FunktionWiederholung - ValidierungsfunktionStandard-Parameterwerte