Pętle
Pętle
Pętla jest to instrukcja która powtarza pewien blok instrukcji, dopóki jest
spełniony odpowiedni warunek.
while
W wolnym tłumaczeniu: wykonuj dopóki jest spełniony warunek.
Pętla while jest to pętla która działa w następujący sposób:
Sprawdza czy warunek jest spełniony,
jeżeli tak to wykonuje blok i ponownie sprawdza warunek.
Jeżeli nie to ignoruje blok i kontynuuje działanie programu
Składnia:
while (warunek)
{
instrukcje;
}
for
Pętla for jest bardziej skąplikowana. Jest ona podobna do pętli
while z tym że oprócz warunku ma jeszcze instrukcję inicjującą pętle (wykonywaną
przed pierwszym sprawdzeniem warunku), oraz instrukcję wykonywaną po wykonaniu
pętli.Składnia:
for (instrukcja1 ; warunek ; instrukcja2)
{
instrukcja3;
}
Jeżeli progran natrafi na pętlę for to wykonuje instrukcja1, następnie
sprawdzany jest warunek. Jeżeli jest on spełniony to wykonywana jest instrukcja3.
Po jej wykonaniu wykonuje się instrukcje2, i sprawdza warunek.
Jeżeli gdzieś warunek nie jest spełniony to program przerywa działanie pętli, lub
wcale jej nie wykonuje.
W odróżnieniu do pętli while ta pętla nie musi posiadać warunku, ani
instrukcji 1 i 2. Można w ten sposób stworzyć pętlę nieskończoną. Trzeba tylko
pamiętać żeby w nawiasach przy deklaracji pętli były dwa średniki. Poprawny jest
taki zapis:
for (;;);
Ta pętla nie robi nic, i będzie wykonywana w nieskończoność. Program napisany z tą
pętlą wiesza mój komputer.
do - while
Ta pętla różni się tylko tym od pętli while że przed pierwszym sprawdzeniem
warunku, wykonane są instrukcje w pętli. Dopiero po pierwszym wykonaniu pętli
sprawdzany jest warunek. Reszta jest jak w pętli whileSkładnia:
do{ instrukcje;}while (warunek);
Instrukcje skoku bezwarunkowego
Istnieją trzy instrukcje skoków bezwarunkowych. Jeżeli program natknie się na tą
instrukcję to wykona skok we wskazane (lub domyślne) miejsce. Oto one:
break
Jeżeli sobie zażyczymy podczas wykonywania pętli przerwać jej działanie to możemy
w każdej chwili to zrobić instrukcją break; . Na przykład zrobiliśmy
program obliczający liczby pierwsze. Liczba pierwsza jest to liczba podzielna przez
1 i przez samą siebie. Robimy w tedy pętle. I na przykład sprawdzamy liczbę 99.
i sprawdzamy czy liczba ta jest podzielna przez jakąś inną liczbę. Stosujemy do
tego dzielenie modulo, i jeżeli wynik jest = 0 to znaczy że liczba jest podzielna
przez jakąś inną. I jeżeli sprawdzamy po kolei liczby 2,3,... to podczas wystąpienia
liczby 3, (99%3) wynik z dzielenia otrzymamy 0. W tedy nie ma sensu sprawdzać
czy liczba nie jest podzielna przez resztę liczb z zakresu 4-98 bo już wiemy że
liczba ta nie jest liczbą pierwszą. W tedy przerywamy pętle instrukcją break;
Przeanalizuj działanie programu pierwsze.cpp.
continue
Instrukcja ta kończy działanie ciałą pętli. Czyli jeżeli jeżeli gdzieś w pętli
wystąpi instrukcja continue to program pomija instrukcje występujące po
niej i przystępuje do ponownego sprawdzenia warunku. Np chcemy wyświetlić liczby
na ekranie bez liczby 3. Robimy w tedy taki program:
#include<iostream.h>
void main()
{
for(int i=1;i<=5;i++)
{
if(i==3) continue;
cout << i << endl;
}
}
goto
Nie będę się nad tą instrukcją rozpisywał gdyż stosowanie tej instrukcji zaciemnia
kod, i programiści raczej jej nie stosują. Jest ona raczej dla tych którzy kiedyś
programowali w basic'u i nie mogą się wyzbyć nawyku takich skoków.
Składnia:
goto etykieta;
// i gdzieś indziej w programie musi się znajdywać coś takiego:
etykieta:
instrukcje;
Są dwa zastrzeżenia. Instrukcja goto nie może powodować przeskoczenia poprzez taką
definicję w której jawnie lub niejawnie inicjuje się jakąś zmienną.
while.cpp
for.cpp
do.cpp
pierwsze.cpp - zastosowanie instrukcji break;
continue.cpp
goto.cpp
Wyszukiwarka
Podobne podstrony:
7 petle11 PętleInformatyka petlepetlepętle 2 wym zad 1 14 05 13Ćw 3 PętleKurs JavaScript instrukcje warunkowe i pętlePętle wiązane jedną rękąPetle 2 wymiarowe 14 05 2013pętle 2 wym zad 3 zmienione na ujemne 14 05 13petlepętle 2 wym zad 2 14 05 13pętle 2 30 04 13petle (3)więcej podobnych podstron