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?
a następnie podaje wynik tego mnożenia.
Jaki będzie wynik tego mnożenia?
.
.
.
I dlaczego 0 ?
.
.
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