Menu
Coddy logo textTech

Przerwij

Część sekcji Podstawy ścieżki R w Coddy. Lekcja 40 z 78.

Czasami trzeba wcześniej przerwać pętlę, zanim wykona wszystkie iteracje. Instrukcja break pozwala natychmiast zatrzymać pętlę, gdy zostanie spełniony określony warunek.

for (i in 1:10) {
  if (i == 5) {
    break
  }
  print(i)
}

Wynik:

[1] 1
[1] 2
[1] 3
[1] 4

Pętla miała wykonywać się od 1 do 10, ale gdy i osiągnęło 5, instrukcja break całkowicie zatrzymała pętlę. Zauważ, że 5 nigdy nie zostało wyświetlone, ponieważ break kończy wykonywanie natychmiast.

Jest to szczególnie przydatne w przypadku pętli while, gdy szukasz czegoś:

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

Wynik:

[1] 5

Tutaj while (TRUE) normalnie działałaby bez końca, ale break zatrzymuje ją, gdy znajdziemy pierwszą liczbę, której kwadrat jest większy niż 20. Ten wzorzec jest często stosowany, gdy trzeba szukać, aż zostanie spełniony określony warunek.

challenge icon

Wyzwanie

Łatwy

Wczytaj liczbę limit z wejścia. Użyj pętli for, aby iterować od 1 do limit, ale przerwij pętlę wcześniej za pomocą break, gdy napotkasz pierwszą liczbę podzielną zarówno przez 3, jak i przez 7.

Wypisz każdą liczbę przed sprawdzeniem warunku. Gdy znajdziesz liczbę podzielną zarówno przez 3, jak i przez 7, wypisz tę liczbę, a następnie przerwij pętlę.

Po zakończeniu pętli wypisz "Loop ended" za pomocą print().

Na przykład, jeśli wejściem jest 30, wynikiem powinno być:

[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"

Pętla zatrzymuje się na 21, ponieważ jest to pierwsza liczba podzielna zarówno przez 3, jak i przez 7 (21 = 3 × 7).

Spróbuj swoich sił

# Wczytaj dane wejściowe
con <- file("stdin", "r")
limit <- as.integer(suppressWarnings(readLines(con, n = 1)))

# TODO: Napisz swój kod poniżej
# Użyj pętli for od 1 do limit
# Wypisz każdą liczbę przed sprawdzeniem warunku
# Przerwij pętlę, gdy znajdziesz liczbę podzielną zarówno przez 3, jak i przez 7
# Wskazówka: Użyj operatora %% do sprawdzenia podzielności


# Wypisz "Loop ended" po zakończeniu pętli
print("Loop ended")
quiz iconSprawdź się

Ta lekcja zawiera krótki quiz. Zacznij lekcję, żeby na niego odpowiedzieć i śledzić swoje postępy.

Wszystkie lekcje w sekcji Podstawy

Poćwicz samodzielnie: Kompilator R online