Professional Documents
Culture Documents
Pętla While1
Pętla While1
Składnia
while( /* warunek kończący pętlę */ )
{
//powtarzany blok instrukcji
}
lub tradycyjnie:
while( /* warunek kończący pętlę */ )
jedna_instrukcja(); //jedna powtarzana instrukcja
Dopóki warunek jest spełniony (czyli wartość logiczna wynosi true) dopóty pętla będzie
powtarzała instrukcję (lub blok instrukcji) występujący bezpośrednio po słowie
kluczowym while.
Blok instrukcji umieszczony w pętli while może się więc nie wykonać ani razu jeżeli wartość
logiczna warunku przy pierwszym wejściu w pętlę będzie fałszywa. Jest to kluczowa, a
zarazem jedyna różnica pętli while od pętli do ... while.
Pętla while wykonuje się tak długo, jak długo prawdziwy jest warunek
(warunki)
Część inicjacyjną licznika tworzy się najczęściej przed blokiem pętli, natomiast część operacyjna jest
wykonywana wewnątrz pętli. Popatrzmy na konstrukcję:
while(warunki)
{ //początek bloku pętli while
//instrukcje powtarzane przez pętlę
} //koniec bloku pętli while
Warto także zauważyć, że pętla może nie uruchomić się ani razu (gdy od samego początku warunek
(warunki) będzie fałszywy).
Należy także zwrócić uwagę, że niepoprawna konstrukcja pętli może spowodować jej zapętlenie
(wykonywanie bez końca).
Zadanie domowe.
Napisz program, który pobiera z klawiatury liczby podane przez użytkownika aż do momentu, gdy
ich suma będzie większa niż 50. Zrealizuj problem za pomocą pętli: while
Programy z lekcji:
#include <iostream>
using namespace std;
int za;
int main()
{
i=1;
while(i<=10)
{
cout<<"Wypisuje po raz: "<<i<<endl;
i++; // inkrementacja
}
return 0;
}
-------------------------------------
#include <iostream>
using namespace std;
int za;
int main()
{
i=0;
while(i<20)
{
cout<<"X";
i++; // inkrementacja
}
return 0;
}
#include <iostream>
----------------------------------------------------------
#include <iostream>
int main()
{
char z;
cout<<"podaj znak: ";
cin>>z;
while (z!='k')
{
cout<<"podaj kolejny znak: ";
cin>>z;
}
cout<<"Podales "<<z<<" wiec koncze"<<endl;
cout<< endl;
return 0;
}