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.
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.
for (int i = 1; i <= 3; i++)
{
Console.WriteLine($"Runda {i}");
}
Runda1, Runda2, Runda3 w osobnych wierszach.
- 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.
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 + "!");
}
}
}
- Prześledź kod Pętla
do-whilejest 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 tablicyimiona, bez potrzeby ręcznego pilnowania indeksu jak w klasycznej pętlifor.
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.
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ę →