Break
Teil des Abschnitts Grundlagen der R-Journey von Coddy. Lektion 40 von 78.
Manchmal musst du eine Schleife vorzeitig beenden, bevor sie alle ihre Iterationen abgeschlossen hat. Mit der Anweisung break kannst du eine Schleife sofort stoppen, wenn eine bestimmte Bedingung erfüllt ist.
for (i in 1:10) {
if (i == 5) {
break
}
print(i)
}Ausgabe:
[1] 1
[1] 2
[1] 3
[1] 4Die Schleife wurde so eingestellt, dass sie von 1 bis 10 läuft, aber als i 5 erreichte, beendete die break-Anweisung die Schleife vollständig. Beachte, dass 5 nie ausgegeben wurde, weil break die Schleife sofort verlässt.
Dies ist besonders nützlich bei while-Schleifen, wenn du nach etwas suchst:
num <- 1
while (TRUE) {
if (num * num > 20) {
break
}
num <- num + 1
}
print(num)Ausgabe:
[1] 5Hier würde while (TRUE) normalerweise unendlich laufen, aber break stoppt es, sobald wir die erste Zahl finden, deren Quadrat größer als 20 ist. Dieses Muster ist üblich, wenn du suchen musst, bis eine Bedingung erfüllt ist.
Aufgabe
EinfachLies eine Zahl limit aus der Eingabe ein. Verwende eine for-Schleife, um von 1 bis limit zu iterieren, aber beende die Schleife vorzeitig mit break, sobald du auf die erste Zahl triffst, die durch 3 und 7 teilbar ist.
Gib jede Zahl aus, bevor du die Bedingung überprüfst. Wenn du eine Zahl findest, die durch 3 und 7 teilbar ist, gib diese Zahl aus und verlasse dann die Schleife mit break.
Nachdem die Schleife beendet ist, gib mit print() "Loop ended" aus.
Wenn die Eingabe beispielsweise 30 lautet, sollte die Ausgabe folgendermaßen aussehen:
[1] 1
[1] 2
[1] 3
[1] 4
[1] 5
[1] 6
[1] 7
[1] 8
[1] 9
[1] 10
[1] 11
[1] 12
[1] 13
[1] 14
[1] 15
[1] 16
[1] 17
[1] 18
[1] 19
[1] 20
[1] 21
[1] "Loop ended"Die Schleife stoppt bei 21, weil dies die erste Zahl ist, die durch 3 und 7 teilbar ist (21 = 3 × 7).
Probier es selbst
# Eingabe lesen
con <- file("stdin", "r")
limit <- as.integer(suppressWarnings(readLines(con, n = 1)))
# TODO: Schreibe deinen Code darunter
# Verwende eine for-Schleife von 1 bis limit
# Gib jede Zahl aus, bevor du die Bedingung prüfst
# Break, wenn du eine Zahl findest, die sowohl durch 3 als auch durch 7 teilbar ist
# Hinweis: Verwende den %%-Operator, um die Teilbarkeit zu prüfen
# Gib "Loop ended" nach der Schleife aus
print("Loop ended")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