Dataczwartek, 13 sierpnia 2026 Czas18:06:16
← Programowanie konsolowe (C#)

Lekcja 6. Pętle (for, while, do-while, foreach)

Podstawowy

Po co się tego uczymy?

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.

Teoria

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) { ... }

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

Schemat

for (inicjalizacja; warunek; krok)     while (warunek)          do { ... }
        │                                    │                  while (warunek)
        ├─ sprawdź warunek ──NIE──> koniec   ├─ sprawdź ──NIE──> koniec   │
        │           │                        │        │          wykonaj RAZ,
        │          TAK                       │       TAK         potem sprawdź
        │           │                        │        │          warunek
        │       wykonaj blok                 │    wykonaj blok
        │           │                        │        │
        └─── krok ──┘                        └── wróć do warunku

Przykład z życia

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.

Kod (C#)

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 > )
        {
            paliwo -= 25;
            Console.WriteLine("Paliwo: " + paliwo);
        }

        // do-while - wykona się co najmniej raz
        int probaLogowania = ;
        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 + "!");
        }
    }
}

Komentarz i wyjaśnienie kodu

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.

Ćwiczenie samodzielne

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.

Plac zabaw — wypróbuj online

Poniższy kod wykonuje się od razu w Twojej przeglądarce — nic nie trzeba instalować. Zmień kod i kliknij „Uruchom”.

CSHARP

Zadania do pracy własnej

  1. Napisz program obliczający sumę liczb od 1 do 100 za pomocą pętli for.

  2. Napisz program symulujący odliczanie rakiety od 10 do 0 (pętla while), a po dojściu do 0 wypisujący "START!".

  3. Napisz program "zgadnij liczbę": w tablicy zapisz z góry wylosowaną liczbę (np. 7) i trzy "próby" gracza (np. 5, 9, 7 — wpisane na sztywno w tablicy), a pętlą foreach sprawdź kolejne próby, używając break, żeby przerwać pętlę od razu po trafieniu, i wypisz komunikat, po której próbie gracz zgadł.

Typowe błędy

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.

Nawiązanie do egzaminu zawodowego

To realizacja efektu INF.04.4.4 z podstawy programowej ("stosuje wyrażenia, instrukcje i biblioteki") w zakresie pętli — jednego z podstawowych elementów programowania strukturalnego, niezbędnego przy przetwarzaniu tablic i kolekcji w Lekcji 8.