PĘTLE


CO trzeba umieć:




//////////////////////////////////////////////////////////////////


1. for

Konstrukcja:
 
/////////////////////////////////////////////////
for(wartosc_poczatkowa; warunek ; instrukcja_po_wykonaniu){

            BLOK INSTRUKCJI

}
/////////////////////////////////////////////////

Pętla for wykonuje się następująco:

1.wartosc_poczatkowa

2.sprawdzenie warunku
3.blok instrukcji
4.instrukcja_po_wykonaniu

5.sprawdzenie warunku

Jeśli warunek jest nie spełniony pętla się nie wykona i program będzie kontynuował pracę dalej.
Nie wszystkie składniki pętli muszą być wpisane, jednak musi pozostać konstrukcja, tzn. należy wpisać średnik, a zostawić puste miejsce.
Ogólna zasada wykorzystania pętli for jest taka, że stosujemy ją, wtedy gdy wiem ile razy pętla ma się wykonać lub dowiadujemy się tego w trakcie programu (pętla ma się wykonywać „n” razy).

np.:

/////////////////////////////////////////////////

int licznik;
for(licznik=0;licznik<10;licznik++) printf(„%d ”, licznik);

/////////////////////////////////////////////////

int licznik=0;
for( ;licznik<10;licznik++) printf(„%d ”, licznik);

/////////////////////////////////////////////////

int licznik=0, n=10;
for( ;licznik<n; ){
       printf(„%d ”, licznik);
       licznik = licznik + 1;
}

/////////////////////////////////////////////////

W każdym z przypadków konsola wypisze:

0 1 2 3 4 5 6 7 8 9

for(;;) // pętla nieskończona
for(;1;) // pętla nieskończona
for(;true;) // pętla nieskończona


2. while (dopóki)

Konstrukcja:
/////////////////////////////////////////////////

while(warunek){
       BLOK INSTRUKCJI
}

/////////////////////////////////////////////////

Pętla while podobna jest do pętli for tylko inaczej jest zapisywana i zazwyczaj stosujemy ją wtedy, gdy nie wiem ile razy ma się pętla wykonać (np. aż trafi na jakiś warunek). Ale nie oznacza to, że pętla while różni się jakoś bardzo od for. Ale korzystanie z for nie wiedząc ile ta pętla ma się razy wykonać (cytując mojego wykładowcę) byłoby naiwnym i tandetnym rozwiązaniem :). Natomiast w praktyce to wsio ryba :P

np.:

(tandetne rozwiązanie problemu, ale poprawne składniowo)

int i=0;
while(i<10){
      printf(„%d ”, i);
      i++;
}

program na ekran wypisze:

0 1 2 3 4 5 6 7 8 9

/////////////////////////////////////////////////

int i=1,suma=0;
while(i != 0){
      scanf(„%d”, &i);
      suma += i;
}
printf(„%d”, suma);

program ten będzie dodawał liczby podane przez użytkownika, aż ten nie poda 0, a następnie wyjdzie z pętli i wyświetli wynik dodawania.

/////////////////////////////////////////////////

While(1) // pętla nieskończona
while(true) // pętla nieskończona
while(0) // pętla się nigdy nie wykona



3. do...while(rób dopóki)

Konstrukcja:
 
/////////////////////////////////////////////////

do{
      BLOK INSTRUKCJI
}while(warunek);

/////////////////////////////////////////////////

Pętla wykonuje się następująco:

1.Blok Instrukcji
2.Sprawdza warunek

3.Blok Instrukcji

pętla do...while jest praktycznie taka sam jak pętla while,jedyna różnica jest taka, że sprawdzenie warunku następuje po wykonaniu bloku instrukcji.

np.:

int i,x=0;
do{
     scanf(„%d”, &i);
     x*=i; // x=x*i
     printf(„%d”, i);

}while(i);

printf(„%d”, x);

program mnoży liczby podane przez użytkownika wypisuje je,
a następnie podaje wynik tego mnożenia.

Jaki będzie wynik tego mnożenia?
.
.
.
I dlaczego 0 ?

Istnieją również instrukcje takie jak break i continue. Są to instrukcje sterujące pętlą. Break już był używany, wykorzystywaliśmy go, aby przerwać działanie switch, ale również możemy go używać jako boczne wyjście z pętli. Program po natrafieniu na break wychodzi z pętli i kontynuuje pracę dalej. Natomiast instrukcja continue przerwa, ale jedną iterację pętli. Program po natrafieniu na contionue kończy blok instrukcji i wykonuje dalej czynności w zależności od pętli.

Brak komentarzy:

Prześlij komentarz