🔥 Zapisy zamknięte, ale możesz pobrać Roadmapę .NET i dołączyć do listy oczekujących — Pobierz i dołącz do Listy VIP →

Pętla while w C# — jak działa i kiedy używać

Pętli while używamy, gdy chcemy powtarzać kod, ale nie znamy z góry liczby iteracji — powtarzamy go tak długo, jak długo spełniony jest pewien warunek.

Jak działa pętla while

Pętla while wykonuje blok kodu tak długo, jak długo warunek (wyrażenie logiczne) jest prawdziwy. Warunek sprawdzany jest przed każdą iteracją — gdy staje się fałszywy, pętla się kończy. Jeśli warunek jest fałszywy już na starcie, ciało pętli nie wykona się ani razu. To odróżnia ją od pętli do…while, która sprawdza warunek dopiero na końcu.

⚠️ Ważne: warunek musi w końcu stać się fałszywy. W przeciwnym razie powstanie pętla nieskończona, która obciąży procesor i zablokuje program.

Składnia

while (warunek)
{
    // blok kodu wykonywany, dopóki warunek jest prawdziwy
}
  • warunek – wyrażenie typu bool (wymagane); dopóki jest true, pętla działa.

Działający przykład

int i = 0;
while (i < 5)
{
    Console.WriteLine(i);   // 0, 1, 2, 3, 4
    i++;                    // krok zbliżający do zakończenia
}

Zwróć uwagę na i++ — bez zmiany zmiennej sterującej warunek i < 5 byłby zawsze prawdziwy i pętla nigdy by się nie zakończyła.

Praktyczny idiom: wczytywanie aż do końca danych

Bardzo częsty, produkcyjny wzorzec — while z przypisaniem wewnątrz warunku, używany do czytania kolejnych linii pliku aż do napotkania null:

using var reader = new StreamReader("dane.txt");
string? linia;

while ((linia = reader.ReadLine()) != null)
{
    Console.WriteLine(linia);
}

Nawiasy wokół linia = reader.ReadLine() są konieczne — bez nich kompilator próbowałby porównać wynik przypisania z null w innej kolejności (operator przypisania ma niższy priorytet niż !=) i kod się nie skompiluje.

Jak uniknąć pętli nieskończonej

Dwie najważniejsze zasady:

  1. Zadbaj o postęp – w każdej iteracji rób krok, który zbliża warunek do wartości fałszywej (np. i++, pobranie kolejnego elementu, zmiana stanu).
  2. Porównuj zakresem, nie dokładną równością – używaj i < n (lub i <= n) zamiast i == n. Przy porównaniu == łatwo „przeskoczyć” wartość docelową (np. iterując co 2 nigdy nie trafisz w liczbę nieparzystą), a wtedy warunek nigdy nie zostanie spełniony.
// ❌ ryzykowne: jeśli krok przeskoczy 10, pętla nie skończy się nigdy
int x = 0;
while (x != 10)
{
    x += 3;   // 0, 3, 6, 9, 12, 15... nigdy dokładnie 10
}

// ✅ bezpiecznie: porównanie zakresem
int y = 0;
while (y < 10)
{
    y += 3;   // kończy się, gdy y osiągnie lub przekroczy 10
}

Pętla nieskończona „celowo”

Czasem pętla nieskończona jest zamierzona (np. pętla zdarzeń serwera albo gry), a wyjście z niej realizujemy instrukcją break lub tokenem anulowania:

while (true)
{
    // ...
    if (czyZakonczyc)
    {
        break;
    }
}

Kiedy używać while?

Wybieraj while, gdy liczba powtórzeń zależy od warunku sprawdzanego w trakcie działania (np. czytanie danych aż do końca strumienia, ponawianie próby do skutku). Gdy liczba iteracji jest znana z góry — czytelniejsza będzie pętla for. Gdy ciało musi wykonać się co najmniej raz — sięgnij po do…while.

💡 W Visual Studio: wpisz while i naciśnij dwukrotnie Tab, aby wstawić szkielet pętli.

FAQ

Czym różni się while od do…while?
while sprawdza warunek przed pierwszym wykonaniem ciała — jeśli jest fałszywy od razu, ciało nie wykona się ani razu. do…while sprawdza warunek na końcu, więc ciało zawsze wykona się co najmniej raz.

Czy while(true) to zły styl?
Nie, o ile pętla ma jasny, kontrolowany punkt wyjścia (break albo return) — to standardowy wzorzec dla pętli zdarzeń i serwerów nasłuchujących w nieskończoność.

👨‍💻
Mariusz Jurczenko
Senior .NET Developer · 10+ lat doświadczenia komercyjnego

Programista .NET z doświadczeniem komercyjnym w firmach takich jak NFZ, Kamsoft, Diagnostyka, Hermes Reply Polska czy Etisoft Smart Solutions. Twórca kursów, z których skorzystało już ponad 11 000 osób w Strefie Kursów i ponad 1 000 kursantów na dev-hobby.pl.

Specjalizacja: Clean Code, Clean Architecture i uczenie programowania tak, żeby dało się je naprawdę zrozumieć — nie wykuć.

🚀 Co dalej?

Zobacz to w praktyce na wideo i pobierz darmową roadmapę, żeby ułożyć naukę w spójną ścieżkę do pierwszej pracy.

7 comments

Dodaj komentarz

czytanie to początek

Zamień wiedzę w umiejętności

Pobierz darmową Roadmapę .NET i ułóż takie tematy jak ten w spójną ścieżkę do pierwszej pracy.

Pobieram roadmapę →