CodeGym /Kursy /C# SELF /Pętla for: wprowadzenie i niuanse użycia

Pętla for: wprowadzenie i niuanse użycia

C# SELF
Poziom 4 , Lekcja 2
Dostępny

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ść!");
}
Klasyczna pętla for — 10 razy wypisz "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
}
Ogólna składnia pętli for

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:

  1. Inicjalizacja int i = 0; wykonywana 1 raz przed pętlą.
  2. Następnie sprawdzany jest warunek i <= 10
  3. Potem przydatna czynność pętli Console.WriteLine(i);
  4. Później zwiększenie licznika i++
  5. 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ć!");
}
Nieskończona pętla for

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".

Komentarze
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION