Jason. Cała informatyka w jednym miejscu!

Jeśli wyrywacie sobie włosy z głowy nad tym, co to jest pętla "for", to już się głowić nie musicie. W ten sobotni dzień postaram się wrzucić aż trzy artykuły w ciągu jednego dnia na temat każdej z podstawowych pętli, zatem traktujcie ten artykuł jako część 1 z 3. Tu jest część druga, a tu trzecia.

PĘTLA FOR. WYJAŚNIENIE OD PODSZEWKI

Pętla "for" (zwana też "iteracyjną") jest jedną z podstawowych pętli pozwalających na wykonywanie danych instrukcji określoną liczbę razy, zatem jest ona wyjątkowo użyteczna gdy wiemy ile razy musi wykonać powtórzeń. Jest to jedna z dwóch pętli posiadających tzw. "warunek wejścia", zatem warunek jest sprawdzany już na samym początku, zanim dojdzie do pierwszego wykonania cyklu. Składa się ona z trzech części oddzielonych od siebie średnikami (to zależy już od języka programowania, ale tak jest w większości): inicjalizacja, warunek, aktualizacja.

  • INICJALIZACJA polega na utworzeniu zmiennej iteracyjnej, która będzie istnieć tylko w obrębie bloku instrukcji należącego do pętli "for",
  • WARUNEK ustala czy komputer ma ponownie wykonać serię poleceń należących do pętli czy przejść do następnej instrukcji,
  • AKTUALIZACJA modyfikuje zmienne iteracyjne w celu przesunięcia licznika mającego wpływ na warunek.

Oto najczęściej spotykana postać (język C):

for (inicjalizacja; warunek; aktualizacja)
{
    instrukcje;
}

Zaznaczam, że mimo tego, że powyższa składnia jest najczęściej stosowana, to pętla "for" nie musi wcale mieć żadnych części opisanych powyżej. Można na przykład zapisać ją tak:

for (;;)
{
    instrukcje;
}

Wówczas pętla staje się nieskończona.

Pętla "for"

Pętla "for" składa się z trzech wyrażeń: inicjalizacji, sprawdzenia warunku oraz aktualizacji. Kolejność wykonywania wszystkich części przedstawia powyższy rysunek.

PRZYKŁADOWE ZASTOSOWANIA

W przeciwieństwie do innych pętli, ona doskonale się nadaje do sytuacji przy których WIEMY ile razy musi wykonać swoje instrukcje. Zatem doskonale nadaje się do następujących rzeczy:

  1. wykonywanie dowolnych instrukcji N razy,
  2. operowanie na tablicy,
  3. możliwość operowania na wielu wymiarach w wyniku "zagnieżdżenia" pętli (osadzenia jednej pętli w drugiej),
  4. aktualizowanie kilku zmiennych naraz, zarówno dotyczących tylko tej pętli, jak również wszelkich danych zewnętrznych.

Zaprezentuję teraz parę prostych przykładów dotyczących języka CTen przykład pokazuje proste wypisanie komunikatu określoną liczbę razy:

#include <stdio.h>

#define TIMES 5

int main(void)
{
    for (int i = 0; i < TIMES; ++i)
    {
        printf("Wypisuje komunikat...\n");
    }
    
    return 0;
}

Pętla "for" i jej potencjał sięga znacznie dalej. Tutaj z kolei prezentowane jest wprowadzanie liczb całkowitych oraz ich wypisanie w odwrotnej kolejności. Obie czynności korzystają z tej samej odmiany pętli:

#include <stdio.h>

#define SIZE 8

int main(void)
{
	int numbers[SIZE];
	
	printf("Podaj %d liczb calkowitych: ", SIZE);
	
	for (int n = 0; n < SIZE; ++n)
	{
		scanf("%d", &numbers[n]);
	}
	
	printf("Oto podane liczby w odwrotnej kolejnosci:\n");
	
	for (int n = SIZE - 1; n >= 0; --n)
	{
		printf("%3d\t", numbers[n]);
	}
	
	printf("\nKoniec.\n");
	getchar();
	getchar();
	
	return 0;
}

Takie dwa proste przykłady pokazują, że możliwości pętli "for" są bardzo duże. Zrozumienie jej działania jest FUNDAMENTALNE, aby spokojnie powiedzieć, że "umiecie podstawy".


To koniec prostego tłumaczenia czym jest pętla "for". Kliknijcie tutaj, aby przejść do drugiej części omawiającej pętlę "while".

PODOBNE ARTYKUŁY