Pętle w programowaniu są konstrukcjami, których używa się, żeby powtarzać pewien fragment kodu w kółko. W zależności od rodzaju pętli może ona być wykonywana określoną ilość razy lub może być wykonywana do momentu, aż nie wystąpi odpowiedni warunek, który spowoduje zakończenie wykonywania pętli.
Przykładem pętli w codziennym życiu może być:
- Przekręć klucz w drzwiach 2 razy, żeby drzwi zostały otwarte.
- Przekręć zakrętkę o jeden obrót, aż do momentu, kiedy butelka zostanie otwarta.
Przykładów pętli w życiu codziennym można spotkać dużo więcej i jest to coś, co jest stosowane przez każdego z nas codziennie.
W C# wyróżniamy kilka rodzajów pętli:
- for
- foreach
- while
- do while
Scharakteryzujmy sobie teraz krótko każdą z pętli.
FOR
Zacznijmy od przykładu:
For(int i =0 ; i < 100 ; i++)
{
// wykonaj powtarzalny kawałek kodu
Console.WriteLine("pętla wykonuje się");
}
Jest to pętla, w której z góry wiemy ile razy powinna się ona powtórzyć. Idealnie pasuje do przykładu z przekręcaniem klucza w zamku.
Składa się ona z słowa kluczowego “For”, następnie w nawiasie występują 3 części oddzielone “;”
(<zacznij numerować od liczby> ; <numeruj do momentu, kiedy liczba jest mniejsza/mniejsza równa od liczby końcowej>;<zwiększ liczbę o x np. o 1 lub o 5>)
Następnie mamy sekcje w “{}” gdzie jest kod, który ma się powtarzać.
FOREACH
Zacznijmy od przykładu:
List<string> listaElementów = new List<string>();
foreach(var element in listaElementów)
{
// wykonaj powtarzalny kawałek kodu
Console.WriteLine("pętla wykonuje się");
}
Jest to pętla podobna w swoim działaniu do pętli “for”. Przechodzi ona po wszystkich elementach listy, która jest implementacją interfejsu System.Collections.IEnumerable System.Collections.Generic.IEnumerable<T>.( O tym interfejsie i listach będę opowiadał w kolejnych wpisach).
WHILE
Zacznijmy od przykładu:
While( <warunek logiczny>){
// wykonaj powtarzalny kawałek kodu
Console.WriteLine("pętla wykonuje się");
}
While( wiek < 18 ){
// wykonaj powtarzalny kawałek kodu
Console.WriteLine("pętla wykonuje się");
}
Do pętli “while” można idealnie dopasować przykład z “Przekręć zakrętkę o jeden obrót, aż do momentu kiedy butelka zostanie otwarta”.
Jest to pętla, która wykonuje się tak długo, aż warunek logiczny jest prawdziwy. Tutaj ważna uwaga: pętla tego typu może wykonywać się w nieskończoność !!!!
To bardzo ważny fakt, który może spowodować błędne działanie naszej aplikacji. Warto szczególnie zwrócić uwagę na to, aby warunek logiczny kiedyś przestał być prawdziwy tak, żeby była szansa kiedyś zakończyć działanie pętli. Działanie tej pętli zaczyna się od sprawdzenia warunku logicznego, a następnie wykonywany jest kod w sekcji “{}”. Następnie znowu zostaje sprawdzony warunek logiczny i znowu zostaje wykonany kod w sekcji “{}”. Dzieję się to do momentu kiedy warunek logiczny jest prawdziwy.
DO WHILE
Klasycznie zacznijmy od przykładu:
do
{
// wykonaj powtarzalny kawałek kodu
Console.WriteLine("pętla wykonuje się");
} while( <warunek logiczny>)
do
{
// wykonaj powtarzalny kawałek kodu
Console.WriteLine("pętla wykonuje się");
} while( wiek < 18 )
Jest to przykład pętli, gdzie również można idealnie dopasować przykład z “Przekręć zakrętkę o jeden obrót, aż do momentu kiedy butelka zostanie otwarta”.
Jest to pętla bardzo podobna do pętli ”while” z tą różnicą, że warunek jest sprawdzany na końcu pętli, a nie na początku, przez co mamy pewność, że kod wewnątrz pętli wykona się przynajmniej jeden raz.
Ok, to na tyle zajawki na dzisiaj. W kolejnych wpisach będę dokładnie omawiał działanie każdej z pętli wraz z przykładami i zadaniami.