Pętla while
Część sekcji Podstawy ścieżki R w Coddy. Lekcja 39 z 78.
Podczas gdy pętla for przechodzi przez wcześniej zdefiniowaną sekwencję, pętla while działa tak długo, jak warunek pozostaje TRUE. Jest to przydatne, gdy nie wiesz z góry, ile razy musisz coś powtórzyć.
count <- 1
while (count <= 3) {
print(count)
count <- count + 1
}Wynik:
[1] 1
[1] 2
[1] 3Pętla sprawdza warunek count <= 3 przed każdą iteracją. Gdy count osiągnie wartość 4, warunek ma wartość FALSE i pętla się zatrzymuje.
Ważne: Musisz aktualizować zmienną wewnątrz pętli. Bez count <- count + 1 warunek zawsze byłby TRUE, tworząc nieskończoną pętlę, która nigdy się nie kończy.
total <- 0
num <- 1
while (num <= 5) {
total <- total + num
num <- num + 1
}
print(total)Wynik:
[1] 15Ten przykład dodaje liczby od 1 do 5, uzyskując 15. Pętla while sprawdza się idealnie, gdy punkt zakończenia zależy od warunku, a nie od ustalonej sekwencji.
Wyzwanie
ŁatwyWczytaj z wejścia liczbę n. Użyj pętli while, aby obliczyć i wypisać sumę wszystkich liczb od 1 do n.
Zacznij od zmiennej, która będzie przechowywać bieżącą sumę, oraz drugiej zmiennej pełniącej funkcję licznika. Dodawaj do sumy, dopóki licznik jest mniejszy lub równy n, zwiększając licznik w każdej iteracji.
Po zakończeniu pętli wypisz końcową sumę za pomocą print().
Na przykład, jeśli wejściem jest 5, wynikiem powinno być:
[1] 15Dzieje się tak, ponieważ 1 + 2 + 3 + 4 + 5 = 15.
Spróbuj swoich sił
# Wczytaj dane wejściowe
con <- file("stdin", "r")
n <- as.integer(suppressWarnings(readLines(con, n = 1)))
# Zainicjalizuj zmienne
total <- 0
counter <- 1
# TODO: Napisz poniżej pętlę while, aby obliczyć sumę od 1 do n
# Wyświetl wynik
print(total)Ta lekcja zawiera krótki quiz. Zacznij lekcję, żeby na niego odpowiedzieć i śledzić swoje postępy.
Wszystkie lekcje w sekcji Podstawy
4Operatory, część 2
Operatory logiczne (AND, OR)Operatory logiczne, część 2 (NOT)Powtórka — prosta logikaLogika wektoryzowana, część 1Logika wektoryzowana, część 27Kalkulator podziału rachunku
Wiadomość powitalnaPobieranie danych od użytkownika10FizzBuzz z niespodzianką
Omówienie gryFunkcja FizzBuzz2Zmienne i typy danych
Liczbowy typ danychCałkowity typ danychZnakowy typ danychLogiczny typ danychSprawdzanie typów danychKonwencje nazewnictwaBrakujące wartości: NAPodsumowanie – tworzenie zmiennych8Pętle
Pętla forPętla whilePrzerwijNastępna iteracja (continue)Powtórka — silniaGenerowanie sekwencji (seq, :)Pętle zagnieżdżonePowtórka — dynamiczne wprowadzanie danych3Operatory, część 1
Operatory arytmetyczneDzielenie całkowite i moduloOperatory przypisaniaPowtórka — prosta matematykaOperatory porównania6Podstawowe wejście/wyjście
Wyświetlanie danychCat jako wyjścieWyjście z użyciem zmiennychOdczyt danych wejściowych za pomocą readline()Podstawy konwersji typówPowtórka — kalkulator wiekuPowtórka — prawda czy fałsz9Funkcje
Deklarowanie funkcjiArgumenty funkcjiWartości zwracanePowtórzenie — funkcja SigmaPowtórzenie — funkcja walidującaDomyślne wartości parametrówPoćwicz samodzielnie: Kompilator R online