3. P¦tle

Transkrypt

3. P¦tle
Podstawy Programowania :: Roman Grundkiewicz :: 2014
Zaj¦cia 3
3. P¦tle
1
P¦tle while i do-while
W trakcie dziaªania programu cz¦sto zachodzi potrzeba wykonania pewnych operacji wielokrotnie.
P¦tla while sªu»y do wielokrotnego powtarzania pewnych instrukcji dopóty, dopóki prawdziwy
jest podany warunek:
1
2
3
4
while (warunek) {
// instrukcje wykonywane, dopoki warunek jest prawdziwy
}
// dalsze instrukcje
Przykªad:
1
2
3
4
5
int i = 5;
while(i > 0) {
std::cout << i-- << "... ";
}
std::cout << "BOOM!" << std::endl;
wypisze na ekranie konsoli:
1
5... 4... 3... 2... 1... BOOM!
Aby p¦tla zostaªa wykonana przynajmniej jeden raz niezale»nie czy podany warunek jest prawdziwy, nale»y u»y¢ p¦tli do-while:
1
2
3
4
do {
// instrukcja wykonana raz i powtarzana, dopoki warunek jest prawdziwy
} while (warunek)
// dalsze instrukcje
2
P¦tla for
Cz¦sto podczas korzystania z p¦tli przydatne jest odniesienie si¦ do licznika, który odlicza kolejne
iteracje. W przypadku p¦tli while oraz do-while programista musi zadba¢ o niego sam, np:
1
2
3
4
5
int i = 0;
while (i < 10) {
std::cout << i << " ";
i++;
}
To samo umo»liwia p¦tla for:
1
2
3
for (int i = 0; i < 10; i++) {
std::cout << i << " ";
}
1
Podstawy Programowania :: Roman Grundkiewicz :: 2014
Zaj¦cia 3
Oba fragmenty kodu wypisz¡ liczby mniejsze ni» 10.
Posta¢ p¦tli for:
1
2
3
for (inicjalizacja; warunek_kontynuacji; krok) {
// ciag instrukcji
}
P¦tla for wykonuje kod inicjalizacji tylko jeden raz, przed wykonaniem pierwszej iteracji. Przed ka»dym przebiegiem p¦tli sprawdzany jest warunek_kontynuacji i je»eli jest on
prawdziwy, wykonywany jest ci¡g instrukcji zawartych w bloku. Na ko«cu ka»dej iteracji
wykonywany jest krok dowolna operacja modykuj¡ca licznik i.
Zarówno inicjalizacja, warunek_kontunuacji oraz krok mog¡ by¢ puste. Mog¡ równie»
zawiera¢ wi¦cej ni» jedno wyra»enie oddzielone przecinkami.
2.1
Przerywanie i wznawianie p¦tli
Instrukcja break powoduje opuszczenie p¦tli, bez wykonywania pozostaªych iteracji. Natomiast
instrukcja continue przerywa bie»¡c¡ iteracj¦ i przechodzi do nast¦pnej, a co za tym idzie nie wykonuje ewentualnych dalszych instrukcji dla danego kroku.
Przykªad 1): p¦tla niesko«czona, przerywana dopiero gdy u»ytkownik poda 'q':
1
2
std::cout << "press 'q' to exit" << std::endl;
char sign;
3
4
5
while (true) {
std::cin >> sign;
6
if (sign == 'q') {
std::cout << "exit" << std::endl;
break;
}
7
8
9
10
11
12
13
}
std::cout << "sign = " << sign << std::endl;
Przykªad 2): wypisanie liczb mniejszych od 25 i niepodzielnych przez 4:
1
2
3
4
5
6
for (int i = 0; i < 25; i++) {
if (i % 4 == 0) {
continue;
}
std::cout << i << std::endl;
}
2
Podstawy Programowania :: Roman Grundkiewicz :: 2014
3
Snippets
•
1
2
3
4
•
1
Iteracja po wszystkich liczbach parzystych mniejszych od n
int n = 10;
for (int i = 0; i < n; i += 2) {
// ...
}
Odliczanie od n do 0 z u»yciem p¦tli while
#include <iostream>
2
3
4
5
6
•
1
2
int n = 10;
while (n--) {
std::cout << n;
}
Czytanie liczb od u»ytkownika do momentu podania liczby 0
#include <iostream>
int n;
3
4
5
6
7
1
2
while (true) {
std::cin >> n;
if (n == 0) break;
}
#include <iostream>
int n;
3
4
5
6
do {
std::cin >> n;
} while (n != 0);
3
Zaj¦cia 3

Podobne dokumenty