Zaawansowane sterowanie programem 117
1: // Listing 8.10
2: // Demonstracja wielokrotnych instrukcji
3: //w pętli for
4:
5: tinclude <iostream.h>
6:
7: int main()
8: {
9: for (int i = 0, j = 0; i <3; i++, j++)
10: cout « "i: " « i « " j: " « j « endl;
11: return 0;
12: }
EFEKT DZIAŁANIA:
i: 0 j: 0 i: 1 j: 1 i: 2 j: 2
ANALIZA:
W linii 9, w instrukcji for, inicjalizowane są dwie zmienne i i j, obie wartością zero. Sprawdzany jest warunek (i < 3), a ponieważ jest on spełniony, to wykonywana jest pętla for, na ekranie wypisywane są kolejne wartości zmiennych.
Po wykonaniu instrukcji w linii 10 ponownie sprawdzany jest warunek pętli. Jeśli jest on nadal prawdziwy, to wykonywana jest akcja pętli (zmienne i i j są inkrementowane) i instrukcje wewnątrz niej. Czynność ta powtarzana jest tak długo, jak warunek (i < 3) jest spełniony.
Każda instrukcja w pętli for może być pusta (w szczególnym przypadku wszystkie jednocześnie). Aby to osiągnąć należy wstawić średnik tam, gdzie powinna być instrukcja. Jeśli za pomocą pętli for chcesz uzyskać pętlę równoważną pętli while, to musisz pominąć pierwszą i trzecią instrukcję. Listing 8.11. demonstruje to rozwiązanie.
1: // Listing 8.11
2: // Pętla for z instrukcjami pustymi
3:
4: tinclude <iostream.h>
5:
6: int main()
7: {
8: int licznik =0;
9:
for ( ; licznik < 5 ; )
10:
1: // Listing 8.10
2: // Demonstracja wielokrotnych instrukcji
3: //w pętli for
4:
5: Sinclude <iostream.h>
6:
7 : int main ()
8: {
9: for (int i = 0, j = 0; i <3; i++, j++)
10: cout « "i: " « i « " j: " « j « endl;
11: return 0;
12: )
EFEKT DZIAŁANIA:
i: |
0 |
j: |
0 |
i: |
1 |
j: |
1 |
i: |
2 |
j: |
2 |
ANALIZA:
W linii 9, w instrukcji for, inicjalizowane są dwie zmienne i i j, obie wartością zero. Sprawdzany jest warunek (i < 3), a ponieważ jest on spełniony, to wykonywana jest pętla for, na ekranie wypisywane są kolejne wartości zmiennych.
Po wykonaniu instrukcji w linii 10 ponownie sprawdzany jest warunek pętli. Jeśli jest on nadal prawdziwy, to wykonywana jest akcja pętli (zmienne i i j są inkrementowane) i instrukcje wewnątrz niej. Czynność ta powtarzana jest tak długo, jak warunek (i < 3) jest spełniony.
Każda instrukcja w pętli for może być pusta (w szczególnym przypadku wszystkie jednocześnie). Aby to osiągnąć należy wstawić średnik tam, gdzie powinna być instrukcja. Jeśli za pomocą pętli for chcesz uzyskać pętlę równoważną pętli while, to musisz pominąć pierwszą i trzecią instrukcję. Listing 8.11. demonstruje to rozwiązanie.
1: |
// Listing 8.11 | |
2: 3: |
// Pętla for z instrukcjami |
pus tymi |
4: 5: |
ffinclude <iostream.h> | |
6: |
int main() | |
7: |
{ | |
8: 9: |
int licznik = 0; | |
10: |
for ( ; licznik < 5 ; |
) |