While-Schleife
Teil des Abschnitts Grundlagen der R-Journey von Coddy. Lektion 39 von 78.
Während eine for-Schleife eine vordefinierte Sequenz durchläuft, läuft eine while-Schleife weiter, solange eine Bedingung TRUE bleibt. Das ist nützlich, wenn du im Voraus nicht weißt, wie oft du etwas wiederholen musst.
count <- 1
while (count <= 3) {
print(count)
count <- count + 1
}Ausgabe:
[1] 1
[1] 2
[1] 3Die Schleife prüft die Bedingung count <= 3 vor jeder Iteration. Wenn count den Wert 4 annimmt, ist die Bedingung FALSE, und die Schleife stoppt.
Wichtig: Du musst die Variable innerhalb der Schleife aktualisieren. Ohne count <- count + 1 wäre die Bedingung immer TRUE, wodurch eine Endlosschleife entstünde, die nie endet.
total <- 0
num <- 1
while (num <= 5) {
total <- total + num
num <- num + 1
}
print(total)Ausgabe:
[1] 15Dieses Beispiel addiert die Zahlen von 1 bis 5 und ergibt 15. Die while-Schleife ist ideal, wenn der Endpunkt von einer Bedingung statt von einer festen Abfolge abhängt.
Aufgabe
EinfachLies eine Zahl n aus der Eingabe. Verwende eine while-Schleife, um die Summe aller Zahlen von 1 bis n zu berechnen und auszugeben.
Beginne mit einer Variable, die die laufende Gesamtsumme verfolgt, und einer weiteren Variable als Zähler. Addiere weiter zur Gesamtsumme, solange dein Zähler kleiner oder gleich n ist, und erhöhe den Zähler bei jeder Iteration.
Nachdem die Schleife abgeschlossen ist, gib die endgültige Summe mit print() aus.
Wenn die Eingabe beispielsweise 5 ist, sollte die Ausgabe wie folgt aussehen:
[1] 15Das liegt daran, dass 1 + 2 + 3 + 4 + 5 = 15 ist.
Probier es selbst
# Eingabe lesen
con <- file("stdin", "r")
n <- as.integer(suppressWarnings(readLines(con, n = 1)))
# Variablen initialisieren
total <- 0
counter <- 1
# TODO: Schreibe deine while-Schleife unten, um die Summe von 1 bis n zu berechnen
# Ergebnis ausgeben
print(total)Diese 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 27Rechner zum Teilen der Rechnung
BegrüßungsnachrichtBenutzereingaben erfassen10FizzBuzz mit einer Wendung
SpielübersichtDie FizzBuzz-Funktion13Fortgeschrittene Vektoren
Vektor-Slicing und -IndizierungLogische IndizierungVektorarithmetik & RecyclingDer %in%-Operator2Variablen und Datentypen
Numerischer DatentypGanzzahliger DatentypZeichen-DatentypLogischer DatentypDatentypen überprüfenNamenskonventionenFehlende Werte: NAZusammenfassung – Variablen erstellen5Entscheidungen treffen
If-AnweisungIf - ElseWiederholung – Einfacher TaschenrechnerVerschachteltes If - Else8Schleifen
For-SchleifeWhile-SchleifeBreakNext (Continue)Wiederholung – FakultätSequenzgenerierung (seq, :)Verschachtelte SchleifenWiederholung – Dynamische Eingabe3Operatoren Teil 1
Arithmetische OperatorenGanzzahldivision und ModuloZuweisungsoperatorenRückblick – Einfache MathematikVergleichsoperatoren6Grundlegende Ein- und Ausgabe
Ausgabe mit printcat zur AusgabeAusgabe mit VariablenEingaben mit readline() lesenGrundlagen der TypkonvertierungRückblick – AltersrechnerRückblick – Wahr oder falsch9Funktionen
Eine Funktion deklarierenFunktionsargumenteRückgabewerteWiederholung – Sigma-FunktionWiederholung – ValidierungsfunktionStandardparameterwerteÜbe selbstständig: Online-R-Compiler