Pętla for w C# — składnia i przykłady

Pętla for to podstawowe narzędzie, gdy znasz z góry liczbę powtórzeń albo potrzebujesz operować na indeksie elementu. W tym wpisie zobaczysz składnię, dokładną kolejność działania oraz praktyczne przykłady.
Składnia pętli for
for (inicjalizacja; warunek; iterator)
{
// blok kodu wykonywany w każdej iteracji
}- inicjalizacja – wykonywana raz, na starcie (zwykle deklaracja licznika, np.
int i = 0). - warunek – wyrażenie logiczne sprawdzane przed każdą iteracją; pętla działa, dopóki jest
true. - iterator – wykonywany po każdym przejściu ciała pętli (najczęściej
i++).
Jak działa krok po kroku
Kolejność jest stała i warto ją zapamiętać:
- jednorazowa inicjalizacja,
- sprawdzenie warunku – jeśli
false, pętla się kończy, - wykonanie ciała pętli,
- wykonanie iteratora,
- powrót do punktu 2.
Oznacza to, że iterator (np. i++) działa po pierwszym wykonaniu ciała, a warunek jest sprawdzany jako pierwszy — więc ciało może nie wykonać się ani razu.
Prosty przykład
for (int i = 0; i < 10; i++)
{
Console.WriteLine(i); // wypisze 0, 1, 2, ... 9
}Wiele zmiennych w nagłówku
W sekcji inicjalizacji i iteratora można zadeklarować i zmieniać kilka zmiennych — muszą one być tego samego typu, a poszczególne elementy oddzielamy przecinkami.
for (int i = 1, j = 20; i <= 10 || j <= 40; i++, j += 2)
{
Console.WriteLine("i: {0}, j: {1}", i, j);
}Iterowanie wstecz i co drugi element
Jedna z sytuacji, w której for wygrywa z foreach, to pełna kontrola nad krokiem iteracji — łatwo iterować od tyłu albo pomijać elementy:
var liczby = new List<int> { 10, 20, 30, 40, 50 };
// od tyłu — przydatne, gdy podczas iteracji usuwasz elementy z listy
for (int i = liczby.Count - 1; i >= 0; i--)
{
Console.WriteLine(liczby[i]); // 50, 40, 30, 20, 10
}
// co drugi element
for (int i = 0; i < liczby.Count; i += 2)
{
Console.WriteLine(liczby[i]); // 10, 30, 50
}Iterowanie wstecz to jedyny bezpieczny sposób na usuwanie elementów z listy w trakcie pętli po indeksie — usuwanie od przodu przesuwa indeksy pozostałych elementów i łatwo o pominięcie jednego z nich.
Pętla nieskończona i wyjście z niej
Wyrażenia w nagłówku for są opcjonalne. Pominięcie warunku oznacza, że domyślnie przyjmuje on wartość true — pętla staje się nieskończona. Wyjść z niej można instrukcją break.
for (; ; ) // brak warunku = pętla nieskończona
{
// ...
if (czyZakonczyc)
{
break; // wyjście z pętli
}
}break i continue
Wewnątrz pętli break przerywa ją całkowicie, a continue pomija resztę bieżącej iteracji i przechodzi do następnej.
for (int i = 0; i < 10; i++)
{
if (i % 2 == 0)
{
continue; // pomiń liczby parzyste
}
Console.WriteLine(i); // 1, 3, 5, 7, 9
}Pułapka: modyfikacja licznika wewnątrz ciała pętli
Nic nie broni Ci zmienić zmiennej sterującej wewnątrz ciała pętli, ale to niemal zawsze błąd — psuje przewidywalną liczbę iteracji i zaskakuje każdego, kto czyta kod później:
// ⚠️ myląca pętla — liczba iteracji nie odpowiada nagłówkowi
for (int i = 0; i < 10; i++)
{
Console.WriteLine(i);
if (i == 5)
{
i += 3; // "kradniemy" iteracje, pętla skończy się wcześniej niż sugeruje warunek
}
}Jeśli potrzebujesz przeskakiwać elementy warunkowo, użyj continue zamiast ręcznej manipulacji licznikiem — intencja jest wtedy jasna dla czytelnika.
Kiedy używać for?
Sięgaj po for, gdy znasz liczbę powtórzeń lub potrzebujesz indeksu (np. modyfikacja elementów tablicy po pozycji, iteracja co drugi element, pętle wstecz). Gdy po prostu przechodzisz po wszystkich elementach kolekcji i indeks nie jest potrzebny — czytelniejsza będzie pętla foreach.
💡 Pętlę
forwygodnie wstawisz w Visual Studio snippetem: wpiszfori naciśnij dwukrotnie Tab.
Jeśli szukasz przeglądu wszystkich rodzajów pętli w C#, zobacz Pętle w C# — for, while, foreach. Pętlę po kolekcjach bez indeksu pokazujemy w Pętla foreach w C#.
FAQ
Czy można pominąć nagłówek for całkowicie?
Tak — wszystkie trzy sekcje nagłówka są opcjonalne, ale średniki muszą zostać: for (;;) to poprawna, nieskończona pętla.
Czy for jest wolniejsze niż foreach?
Dla tablic i List<T> różnica jest w praktyce pomijalna — kompilator JIT dobrze optymalizuje oba przypadki. Wybór między nimi to przede wszystkim kwestia czytelności, nie wydajności.
🚀 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.
- 🗺️ Pobierz darmową roadmapę Junior .NET Developer — 12 kroków od podstaw C# do pierwszej pracy: dev-hobby.pl
- 🎬 Subskrybuj kanał YouTube — nowe filmy co tydzień.
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ę →
2 comments