Pętla For
Pętla - ogólnie
Pętla ogólna to konstrukcja
programistyczna stanowiąca jeden z
rodzajów pętli, dostępna w
niektórych językach programowania.
Pętla ta umożliwia między innymi
definiowanie pętli iteracyjnych.
Pętla for - postawa
Pętla for podobnie jak wszystkie pozostałe pętle
umożliwi nam powtórzenie określonych operacji tak
długo jak warunek końcowy jest spełniony.
Schematycznie pętlę for można zapisać:
• for (stany Poczatkowe; warunek Koncowy; zmiany)
lista_instrukcji
• <? for( inicjalizacja zmiennych ; sprawdzenie warunku
; modyfikacja zmiennych) { blok wyrażeń } ?>
• for (int i = 0; i < 10; ++i) std::cout << i << "-ta
iteracja." << std::endl;
Działanie pętli: a)
Działanie tej pętli ma następujący
przebieg:
1. wykonaj instrukcję zawartą w sekcji
inicjalizacyjnej (pozycja A na
schemacie)
2. sprawdź warunek (pozycja B na
schemacie)
jeżeli nie jest spełniony (flase – fałsz
– 0), to zakończ wykonywanie pętli
(gałąź FALSE na schemacie)
jeżeli jest spełniony (true - prawda –
wartość inna niż 0), to przejdź do
wykonania kolejnej iteracji (gałąź
TRUE na schemacie)
3. wykonaj iterację (pozycja D na
schemacie)
4. wykonaj zmianę wartości (pozycja C na
schemacie)
5. wróć do punktu 2 (nieoznaczona gałąź
na schemacie).
b)
Należy podkreślić, że powyższy opis dla sekcji A:
inicjalizacja; B: warunek-zakończenia; C:
zmiana-wartości; jest tylko symbolicznym
określeniem celu stworzenia tych sekcji w
definicji pętli i nie ma żadnego ograniczenia
wobec możliwości zapisania tam wyrażeń nie
związanych z działaniem pętli, np. w sekcji A,
choć ze względu na czytelność kodu
źródłowego nie jest to zalecane jako
zaciemnianie kodu. Ponadto w sekcji B:
warunek-zakończenia; wyrażenie zawarte w
tej części definicji pętli musi zwrócić wartość
logiczną, która określi czy pętla ma zostać
powtórzona czy zakończona.
c)
W językach takich jak C, C++, w
których nie wprowadzono wprost
logicznego typu danych stosuje
się odpowiednią interpretację
wartości należących do typów
całkowitoliczbowych, tzn. wartość
równa zero interpretowana jest jako
wartość logiczna fałsz (false), inne
wartości różne od zera jako wartość
logiczna prawda (true). Jeżeli
natomiast w sekcji B nie zapisano
jakiegokolwiek warunku zakończenia
pętli, to przyjmuje się, że warunek
jest spełniony (prawda - true) i pętla
będzie pętlą nieskończoną.
d)
Na uwagę zasługuje fakt, iż w
sekcji A: inicjalizacja, można
także zawierać deklarację
zmiennych lokalnych. Definicja
konkretnego języka
programowania, bądź jego
implementacja, określa, czy
zmienna tu zadeklarowana
jest widoczna tylko w ramach
wykonywanej pętli, czy także
po jej zakończeniu, w bloku
obejmującym daną pętlę.
Składnia pętli for
Pętla ta w językach
programowania
definiowana jest za
pomocą słowa
kluczowego for.
Pętla ogólna w językach
programowania
Język programowania
składnia
Alef
For( A; B; C) D
C
For( A; B; C) D
C++
For( A; B; C) D
C++/CLI
For( A; B; C) D
C--
For( A; B; C) D
C#
For( A; B; C) {D}
D
For( A; B; C) D
Go
For A; B; C D
Java
For( A; B; C) D
JavaScript
For( A; B; C) D
Objective
For( A; B; C) D
Per
For (A; B; C) {D}
PHP
For (A; B; C) {D}
SAC
For( A; B; C) D
Składnia pętli for(...)
Pętlę for można podzielić na cztery
części:
• Inicjacja początkowych wartości
zmiennych (A)
• Ustalenie warunku kończącego pętlę
(B)
• Zwiększenie (zmniejszenie) licznika
pętli (C)
• Powtarzany blok instrukcji (D);
Zapis uogólniony pętli for(...) wygląda
następująco:
C/C++
for( A; B; C )
{ //początek powtarzanego bloku
instrukcji
D
} //koniec powtarzanego bloku
instrukcji
//lub
for( A; B; C ) D;
Parametry A, B i C oddzielamy zawsze
średnikami.
Prosty przykład omawianej pętli:
C/C++
for( int i = 1; i <= 10; i++ )
{
//Powtarzany blok instrukcji
}
//lub
for( int i = 1; i <= 10; i++ )
jedna_powtarzana_instrukcja;
Zapis int i = 1 jest to inicjacja
początkowej wartości
zmiennej. Zapis ten oznacza,
że tworzymy zmienną typu
int, nazywamy ją i oraz
nadajemy jej wartość
początkową równą 1. Kolejną
część pętli for stanowi
warunek. W tym przypadku
jest to i <= 10 i oznacza tyle,
że dopóki warunek jest
prawdziwy, to ma wykonywać
blok instrukcji. Trzecią
częścią, bez której pętla for
nie byłaby sobą to
zwiększenie bądź
zmniejszenie wartości
zmiennej. W tym przypadku
jest to zapis i++. Zmienna ta
jest zwiększana za każdym
razem po wykonaniu
wszystkich instrukcji z bloku.