Menu
Coddy logo textTech

Break

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

Manchmal müssen Sie eine Schleife vorzeitig beenden, bevor sie alle ihre Iterationen abgeschlossen hat. Die break-Anweisung ermöglicht es Ihnen, eine Schleife sofort zu 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] 4

Die Schleife war so eingestellt, dass sie von 1 bis 10 läuft, aber als i den Wert 5 erreichte, stoppte die break-Anweisung die Schleife vollständig. Beachten Sie, dass 5 nie ausgegeben wurde, da break die Schleife sofort beendet.

Dies ist besonders nützlich bei while-Schleifen, wenn nach etwas gesucht wird:

num <- 1
while (TRUE) {
  if (num * num > 20) {
    break
  }
  num <- num + 1
}
print(num)

Ausgabe:

[1] 5

Hier würde while (TRUE) normalerweise ewig laufen, aber break stoppt sie, sobald wir die erste Zahl finden, deren Quadrat 20 überschreitet. Dieses Muster ist üblich, wenn man suchen muss, bis eine Bedingung erfüllt ist.

challenge icon

Aufgabe

Einfach

Lies eine Zahl limit von der Eingabe ein. Verwende eine for-Schleife, um von 1 bis limit zu iterieren, aber beende die Schleife vorzeitig mit break, wenn du auf die erste Zahl stößt, die sowohl durch 3 als auch durch 7 teilbar ist.

Gib jede Zahl aus, bevor du die Bedingung prüfst. Wenn du eine Zahl findest, die sowohl durch 3 als auch durch 7 teilbar ist, gib diese Zahl aus und brich dann aus der Schleife aus.

Nachdem die Schleife beendet ist, gib "Loop ended" mit print() aus.

Wenn die Eingabe zum Beispiel 30 ist, sollte die Ausgabe wie folgt 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, da dies die erste Zahl ist, die sowohl durch 3 als auch durch 7 teilbar ist (21 = 3 × 7).

Spickzettel

Die break-Anweisung stoppt eine Schleife sofort, 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] 4

Die Schleife wird beendet, wenn i den Wert 5 erreicht. Der Wert 5 wird nie gedruckt, da break die Schleife sofort verlässt.

Verwendung von break mit while (TRUE) für die Suche:

num <- 1
while (TRUE) {
  if (num * num > 20) {
    break
  }
  num <- num + 1
}
print(num)

Ausgabe:

[1] 5

Dieses Muster findet die erste Zahl, deren Quadrat 20 überschreitet, und stoppt dann die Endlosschleife.

Probier es selbst

# Eingabe lesen
con <- file("stdin", "r")
limit <- as.integer(suppressWarnings(readLines(con, n = 1)))

# TODO: Schreibe deinen Code unten
# Verwende eine for-Schleife von 1 bis limit
# Gib jede Zahl aus, bevor die Bedingung geprüft wird
# Brich ab, 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")
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