INF.04 · C# · lekcja 6

Pętle (for, while, do-while, foreach)

Cztery pętle, cztery powody użycia

  • Zrozum
  • Sprawdź
  • Napisz sam

Po tej lekcji: cztery pętle, cztery powody użycia

Dzisiaj zrobisz konkretną rzecz

Bez pętli powtórzenie tej samej operacji 100 razy wymagałoby napisania jej 100 razy z osobna. Pętle to jeden z najczęściej używanych elementów w każdym programie — od prostego licznika po przetwarzanie tysięcy rekordów z bazy danych.

Pasek postępu pobierania pliku w przeglądarce to w praktyce pętla while sprawdzająca w kółko "czy pobieranie już się skończyło?", aktualizując procent za każdym powtórzeniem.

Sprawdź w działaniu

Cztery pętle, cztery powody użycia

Najpierw przewidź wynik. Zmień dane w modelu i porównaj efekt. Spróbuj także przypadku granicznego, a nie tylko pierwszego poprawnego przykładu.

Ta interakcja wymaga włączonego JavaScriptu.

Model pokazuje wybraną zasadę. Nie uruchamia ani nie ocenia wklejonego kodu C#.

1. Przygotuj i uruchom własny projekt

2. Najpierw mały przykład

Wykonaj tę próbę przed dłuższym rozwiązaniem. for (start; warunek; krok) najpierw ustawia i, potem sprawdza warunek, wykonuje ciało i krok. i++ zwiększa wartość o1. Średniki w nawiasie rozdzielają trzy części.

Program.cscsharp
for (int i = 1; i <= 3; i++)
{
    Console.WriteLine($"Runda {i}");
}
Wynik
Runda1, Runda2, Runda3 w osobnych wierszach.
  1. Co sprawdzić? Zmień jedną wartość i przed uruchomieniem zapisz przewidywany rezultat. Porównaj go z opisem wyniku; przy błędzie wróć do konkretnej instrukcji.

Jak to działa — 1

Pętla powtarza ten sam fragment kodu wielokrotnie, bez ręcznego przepisywania go za każdym razem. C# ma cztery rodzaje pętli, każdą do innego zastosowania.

for — gdy z góry wiesz, ILE RAZY coś powtórzyć: for (int i = 0; i < 5; i++) { ... } Składa się z trzech części: inicjalizacji (int i = 0, wykonana raz na starcie), warunku (i < 5, sprawdzanego przed każdym powtórzeniem) i kroku (i++, wykonywanego po każdym powtórzeniu).

while — gdy nie wiesz z góry, ile razy, ale znasz warunek zatrzymania: while (warunek) { ... } Warunek sprawdzany jest PRZED każdym wykonaniem — jeśli od razu jest fałszywy, pętla nie wykona się ani razu.

do-while — jak while, ale sprawdza warunek PO wykonaniu bloku — pętla wykona się przynajmniej RAZ, nawet jeśli warunek jest fałszywy od początku: do { ... } while (warunek);

foreach — do przechodzenia po WSZYSTKICH elementach tablicy lub kolekcji (Lekcja 8), bez ręcznego liczenia indeksów: foreach (var element in tablica) { ... }

Jak to działa — 2

break natychmiast przerywa całą pętlę. continue pomija resztę bieżącego powtórzenia i przechodzi od razu do następnego.

3. Pełny przykład — czytaj od Main

Teraz zastąp Program.cs tym programem. Zanim uruchomisz, znajdź dane wejściowe, operację i miejsce prezentacji wyniku. W tym wariancie zachowujemy jawny Main. Nie wklejaj kilku pełnych programów do jednego pliku.

Program.cs — osobne uruchomieniecsharp
using System;

class Program
{
    static void Main()
    {
        // for - znana liczba powtórzeń
        for (int i = 1; i <= 5; i++)
        {
            Console.WriteLine("Powtórzenie numer " + i);
        }

        // while - dopóki warunek jest prawdziwy
        int paliwo = 100;
        while (paliwo > 0)
        {
            paliwo -= 25;
            Console.WriteLine("Paliwo: " + paliwo);
        }

        // do-while - wykona się co najmniej raz
        int probaLogowania = 0;
        do
        {
            probaLogowania++;
            Console.WriteLine("Próba logowania numer " + probaLogowania);
        } while (probaLogowania < 3);

        // foreach - dla każdego elementu tablicy
        string[] imiona = { "Ala", "Bartek", "Celina" };
        foreach (string imie in imiona)
        {
            Console.WriteLine("Cześć, " + imie + "!");
        }
    }
}
  1. Prześledź kod Pętla do-while jest szczególnie przydatna przy "próbie logowania" czy dowolnym scenariuszu "zrób coś, potem sprawdź, czy powtórzyć" — chcesz, żeby kod wykonał się PRZYNAJMNIEJ RAZ, zanim w ogóle sprawdzisz warunek. foreach (string imie in imiona) automatycznie przechodzi przez KAŻDY element tablicy imiona, bez potrzeby ręcznego pilnowania indeksu jak w klasycznej pętli for.

Sprawdź, zanim przepiszesz cały program

Najpoważniejszy błąd to PĘTLA NIESKOŃCZONA — zapomnienie o zmianie zmiennej sterującej wewnątrz pętli while (np. brak paliwo -= 25;) sprawia, że warunek nigdy nie stanie się fałszywy i program "zawiesza się". Drugi błąd: pomylenie < z <= w warunku pętli for, co powoduje wykonanie o jedno powtórzenie za mało lub za dużo (tzw. błąd "off-by-one"). Trzeci: użycie do-while tam, gdzie warunek powinien być sprawdzony PRZED pierwszym wykonaniem — do-while zawsze wykona blok co najmniej raz, nawet gdy to niepożądane.

Ćwiczenie z pomocą · samodzielna praca

4. Teraz Twoja zmiana

Napisz pętlę for wypisującą liczby od 1 do 10, a następnie pętlę foreach wypisującą elementy tablicy trzech Twoich ulubionych filmów.

Oczekiwany rezultat
Spełnij warunki polecenia. Zapisz wejście, otrzymany wynik i wyjaśnij, która część kodu za niego odpowiada.
Potrzebujesz pomocy? Rozwiązuj krok po kroku.
Krok 1 — pokaż podpowiedź

Wróć do podstawowej formy oraz objaśnienia: for (start; warunek; krok) najpierw ustawia i, potem sprawdza warunek, wykonuje ciało i krok. i++ zwiększa wartość o1. Średniki w nawiasie rozdzielają trzy części.

Krok 2 — pokaż podpowiedź

Zmień tylko część potrzebną do polecenia. Zachowaj działającą wersję przed zmianą i uruchamiaj po każdym małym etapie.

Krok 3 — pokaż podpowiedź

Sprawdź przypadek zwykły i graniczny; porównaj z regułą: Runda1, Runda2, Runda3 w osobnych wierszach.

Otwórz tylko tyle podpowiedzi, ile potrzebujesz. Po każdym kroku wróć do zadania i sprawdź wynik.

5. Sprawdź rozumienie, nie tylko uruchomienie

Dalej na swoim koncie

Rozgrzewki, quiz i zadania są w biurku ucznia.

Teoria jest otwarta dla wszystkich. Żeby rozwiązywać zadania, zapisywać szkice i widzieć swój postęp, zaloguj się.

Zaloguj się →
Źródła i dalsza nauka