Jason. Cała informatyka w jednym miejscu!

Przejdziemy teraz do pętli. Pętla "for" w języku C# jest kolejnym podstawowym elementem w układance noszącej tytuł "Chcę opanować podstawy programowania" ;). Jeżeli chcecie być w stanie pisać bardziej złożone programy wykorzystujące tablice, kolekcje lub jakiekolwiek inne zbiory danych, musicie wiedzieć jak się obchodzić z pętlą "for".

PĘTLA "FOR" W JĘZYKU C# PODSTAWOWYM NARZĘDZIEM W RĘKU PROGRAMISTY!

Nie ma w tym żadnej przesady. Każdy program, który ma wykonywać wiele razy to samo polecenie albo operacje na zbiorach danych, bez względu na to czy będzie to tablica, czy jakakolwiek struktura dynamiczna, nie jest w stanie tego robić bez zaprogramowania pętli. A pętla jest niczym innym jak konstrukcją umożliwiającą wykonywanie bloku poleceń tak długo, jak długo określony warunek jest spełniony. Ponieważ koncentrujemy się w tym artykule na pętli "for", zostanie opisane pojęcie "zmiennej iteracyjnej" oraz z jakich trzech części się ona składa.

BUDOWA PĘTLI "FOR"

Pętla "for" w języku C# jest najbardziej rozwiniętą ze wszystkich czterech odmian pętli (jest jeszcze pętla "while", "do while" i "foreach", które będą omawiane w następnych artykułach). Składa się nie tylko ze słowa kluczowego o tej samej nazwie, ale także z trzech odrębnych części: inicjacja, weryfikacja i aktualizacja. Przyjrzyjmy się wpierw jej całej budowie:

for ([inicjacja]; [weryfikacja]; [aktualizacja])
{
	// instrukcje
}

Wyjaśniam czym prędzej:

  • inicjacja to miejsce dla zmiennej iteracyjnej, w którym dokonuje się definicji zmiennej lokalnej występującej tylko wewnątrz tej pętli "for",
  • weryfikacja czyli część dla wyrażenia relacyjnego, który decyduje o tym, kiedy zaprzestać wykonywania kolejnego obiegu pętli (nauczcie się jak najprędzej fachowego terminu, "iteracja"),
  • aktualizacja jest częścią pętli "for", w której dokonuje się aktualizacji wartości podanej zmiennej (najczęściej dotyczy to zmiennej iteracyjnej, ale może to być każda inna występująca w zasięgu bloku, w którym pętla się znajduje) albo wielu zmiennych wymienianych po przecinku.

Zwracam dodatkowo Waszą uwagę na średnik oddzielający jedną część od drugiej! To jest część składni bez której żadna pętla "for" w języku C# nie przejdzie przez proces kompilacji!

Pozostaje jeszcze przybliżyć Wam szczegóły odnośnie tego, co ma się tam znaleźć i jak ma wyglądać. Jedną z najczęstszych form jakie ujrzycie w swoich życiach jest poniższa:

for (int i = 0; i < 10; ++i)
{
	// instrukcje
}

Jak widzicie, zmienna iteracyjna to jest nic innego jak zmienna przeznaczona specjalnie dla występowania w pętli, której zadaniem jest GŁÓWNIE (bo nie ma takiego obowiązku) kontrolowanie kiedy zaprzestać wykonywania tych samych instrukcji, żeby pętla nie wpadła w sidła nieskończoności. Nazywana jest najczęściej mała literą "i" (od "indeksu"), ale to może być dowolna jaka chcecie. Część weryfikacyjna odpowiada za przechowywanie warunku zakończenia pętli, pisząc ładniej. To musi być wyrażenie warunkowe utworzone przy pomocy omówionych operatorów relacyjnych. I ostatnia część jako aktualizująca, to modyfikacja wartości zmiennej w taki sposób, aby za którymś razem spowodować przerwanie wykonywania pętli. Najczęściej przejawia się w postaci inkrementacji, choć też nie musi - iteracja może podnosić wartość o dwa, o trzy, o ile chcecie. Może być "pre", może być "post". Często będziecie widzieć u innych postinkrementację, jednak ja radzę przestawić się na preinkrementację z powodu opisanego w jednym z poprzednich artykułów kiedy to rozmawialiśmy sobie o operatorach. Może to być też edycja w drugą stronę, czyli zastosowanie dekrementacji (tylko wtedy trzeba zmienić wartość początkową, żeby zaczynała od końca :D).

MANIPULACJA CZĘŚCIAMI

Nie jest powiedziane, że musicie koniecznie korzystać ze wszystkich trzech fragmentów, aby pętla "for" w języku C# zaczęła funkcjonować. Możecie pominąć dowolną z trzech części i na ten przykład, nie korzystać z inicjacji:

int i = 0;

for (; i < 10; ++i)
{
	// instrukcje
}

Macie prawo także pominąć wszystkie części i uczynić tym samym pętlę nieskończoną:

for (;;)
{
	// instrukcje
}

Ale średniki nadal Was obowiązują!!!

PRZYKŁAD KODU ŹRÓDŁOWEGO

Trzeba Was jeszcze przygotować na wykorzystanie tej pętli w praktyce. Pętla "for" w języku C# sprawdza się najlepiej w sytuacjach, kiedy można przewidzieć liczbę niezbędnych powtórzeń. Wspaniałym przykładem jest liczba elementów tablicy, na jakiej chcemy wykonać instrukcje. Pierwszy przykład z brzegu, chociażby przemnożenie wszystkich liczb przez dwa:

int[] numbers = {1, 2, 3, 4, 5, 6};

for (int i = 0; i < numbers.Length; ++i)
{
	numbers[i] *= 2;
}

O właściwości "Length" było podczas tłumaczenia tablic. Pętla wykonywać się będzie tak długo, dopóki wartość zmiennej iteracyjnej nie zrówna się z liczbą argumentów podanej tablicy jaką w tym przykładzie jest "numbers".

Pętla "for" w języku C#

Pętla "for" w języku C# wykonuje umieszczone w bloku instrukcje określoną liczbę razy, w zależności od części weryfikacyjnej czy warunek nadal jest spełniony.


Mówi się, że najtrudniejszy jest początek. Wydaje mi się, że w tym przypadku to się sprawdza. Na starcie trudno Wam się będzie oswoić ze składnią (a zwłaszcza te średniki dadzą Wam się nieraz we znaki ;)), natomiast im więcej poćwiczycie, tym bardziej to Wam wejdzie w krew i problem zniknie. Słowo!

PODOBNE ARTYKUŁY