1. Wprowadzenie
Wyobraź sobie, że masz zadanie: dziesięć razy wypisać na ekran „Cześć!”. Jasne, możesz napisać dziesięć linii z Console.WriteLine("Cześć!"); — ale przecież już znasz pętlę while, więc spokojnie sobie z tym poradzisz.
Ale jest jeszcze jedna pętla — for, która powtarza potrzebną czynność określoną ilość razy. I sama potrafi liczyć!
Oto typowy przykład:
for (int i = 0; i < 10; i++)
{
Console.WriteLine("Cześć!");
}
Co robi ten kod? Wypisuje na ekran słowo „Cześć!” dokładnie 10 razy. Bez kopiowania i bólu nadgarstka.
2. Składnia pętli for
Pętla for składa się z trzech głównych części, które zapisuje się w nawiasach okrągłych po słowie kluczowym for:
for (inicjalizacja; warunek; zmiana)
{
// Ciało pętli
}
Rozłóżmy każdy element na czynniki pierwsze:
- Inicjalizacja — zazwyczaj utworzenie zmiennej-licznika, od której zaczynamy liczenie powtórzeń (int i = 0).
- Warunek — sprawdzany przed każdą iteracją. Jeśli jest prawdziwy — wykonuje się ciało pętli. Jeśli fałszywy — pętla się kończy. Na przykład, i < 10.
- Zmiana — operator, który działa po każdej iteracji. Zazwyczaj zwiększa lub zmniejsza wartość licznika (i++).
Można to narysować na schemacie:
3. Porównanie for i while
Może będzie Ci łatwiej zrozumieć, jeśli powiem, że for to po prostu inny zapis pętli while.
Mieliśmy pętlę while:
int i = 0; // Inicjalizacja zmiennej do pętli
while(i < 10) // Sprawdzenie warunku kontynuacji pętli
{
Console.WriteLine(i); // Przydatna czynność (ciało pętli)
i++; // Zwiększenie licznika
}
Możemy to zapisać jako pętlę for, po prostu przenosząc wszystkie działania sterujące logiką pętli:
for (int i = 0; i < 10; i++) // Inicjalizacja; Sprawdzenie warunku; Zwiększenie licznika
{
Console.WriteLine(i); // Przydatna czynność (ciało pętli)
}
Kroki działania obu pętli:
- Inicjalizacja int i = 0; wykonywana 1 raz przed pętlą.
- Następnie sprawdzany jest warunek i <= 10
- Potem przydatna czynność pętli Console.WriteLine(i);
- Później zwiększenie licznika i++
- Następnie wracamy do kroku 2.
4. Przykłady użycia pętli for
Najprostszy przykład
Wypiszmy liczby od 1 do 5:
for (int i = 1; i <= 5; i++)
{
Console.WriteLine(i);
}
Wynik:
1
2
3
4
5
Uwaga: gdybyś napisał i < 5, ostatni wypis byłby 4.
Odliczanie wstecz
Chcesz poczuć się jak kosmonauta? Zróbmy odliczanie wstecz!
for (int i = 5; i > 0; i--)
{
Console.WriteLine(i);
}
Console.WriteLine("Startujemy!");
Wynik:
5
4
3
2
1
Startujemy!
Krok pętli różny od 1
Możesz zmieniać licznik nie tylko o 1, ale o dowolną inną wartość:
for (int i = 0; i <= 10; i += 2)
{
Console.WriteLine(i);
}
// Wypisze: 0 2 4 6 8 10
5. Wariacje pętli for
Kilka zmiennych w pętli
Czasem wygodnie śledzić od razu dwie zmienne. Na przykład, wypiszmy liczby z prawej do lewej i z lewej do prawej:
for (int left = 1, right = 10; left <= 10; left++, right--)
{
Console.WriteLine($"{left} {right}");
}
Wynik:
1 10
2 9
3 8
...
10 1
Nieskończona pętla for
Jeśli przypadek jest naprawdę ciężki (np. Twój projekt to wieczny silnik w IT), możesz zrobić „wieczną” pętlę for:
for (;;) // bez inicjalizacji, warunku i zmiany
{
Console.WriteLine("Pracować, pracować i jeszcze raz pracować!");
}
Uwaga: taka pętla skończy się tylko, jeśli w ciele jest break, return albo throw. Nie używaj jej bez powodu, bo możesz obudzić pradawnego demona — "Proces nie odpowiada".
GO TO FULL VERSION