11 Pętle











Pętle

Pętla jest to instrukcja która powtarza pewien blok instrukcji, dopóki
jest spełniony odpowiedni warunek. whileW 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; } forPę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 - whileTa
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
bezwarunkowegoIstnieją trzy instrukcje skoków bezwarunkowych. Jeżeli
program natknie się na tą instrukcję to wykona skok we wskazane (lub domyślne)
miejsce. Oto one:breakJeż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.continueInstrukcja 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;
}
}
gotoNie 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.cppfor.cppdo.cpppierwsze.cpp - zastosowanie
instrukcji break;continue.cppgoto.cpp




Wyszukiwarka

Podobne podstrony:
11 (311)
ZADANIE (11)
Psychologia 27 11 2012
359 11 (2)
11
PJU zagadnienia III WLS 10 11
Wybrane przepisy IAAF 10 11
06 11 09 (28)
info Gios PDF Splitter And Merger 1 11

więcej podobnych podstron