Pętla for

Autor podstrony: Krzysztof Zajączkowski

Stronę tą wyświetlono już: 6992 razy

Pętla for jest pętlą typu wyliczeniowego, gdzie stosuje się licznik najczęściej w postaci liczby całkowitej int zmieniany o pewien stały krok dopóki nie zostanie spełniony z góry określony warunek zakończenia pętli. Przykładowy kod z użyciem pętli for podany został poniżej.

#include <iostream> using namespace std; int main(){ int s = 0; cout<<"Podaj wartość obliczanej silni:"; cin>>s; // Wyczytywanie wartości, której silnia ma być obliczona int silnia = 1; // zmienna do przechowywania obliczonej silni for(int i = 1 /*od i = 1*/; i <= s /*do i<=s*/; i++/*z krokiem o 1*/){ silnia *= i; // mnożenie aktualnej wartości silni prze i } cout<<s<<"!="<<silnia; // wyświetlanie wyniku cout<<"Wcisnij enter, aby zamknac program..."; cin.get(); return 0; }

Krok może być dowolny, choć w powyższym przykładzie krok wynosił 1, to nic nie stoi na przeszkodzie aby zmienić go na dowolny inny np. poprzez użycie w kodzie następującego zapisu:

for(int i = 1 /*od i = 1*/; i <= s /*do i<=s*/; i--/*z krokiem o -1*/){ //instrukcje wewnętrzne }

Dla kroku równym 10:

for(int i = 1 /*od i = 1*/; i <= s /*do i<=s*/; i+=10/*z krokiem o 10*/){ //instrukcje wewnętrzne }

Istnieje też możliwość przerwania wykonywania danej pętli za pomocą słowa kluczowego break w następujący przykładowy sposób:

for (int i = 1; i < 10; i++) { cout<<i<<endl; if (i == 4) // gdy i jest równe zero break; // zakończ pętlę for } }

Można również pominąć w iteracji wykonanie jednej instrukcji poprzez wykorzystanie słowa kluczowego continue w następujący sposób:

for(int i = 1; i < 10; i++) { cout<<i<<endl; if (i == 4) // gdy i jest równe zero continue; // zakończ pętlę for cout<<"=========="<<endl; }

Możliwe jest również pominięcie nawiasów klamrowych gdy instrukcja mieści się w jednej linijce kodu:

for(int i = 0; i < 10; i++) cout<<i+1<<endl;

Można również wykorzystać pętlę for w następujący sposób:

int i = 0; for(;i < 10;){ cout<<i + 1<<endl; i++; }

chociaż nie jest to zalecane, bo do tego celu służy pętla while.

Można też całkowicie pominąć elementy nagłówka pętli for w sposób następujący:

int i = 0; for(; ; ) { if(i < 10){ cout<<i + 1<<endl; i++; }else break; }
Propozycje książek