Poznaj C++ w$ godziny0125

Poznaj C++ w$ godziny0125



Zaawansowane sterowanie programem

Listing 8.6. Pomijanie pętli while

1:    //    Listing 8.6

2:    //    Demonstracja    pomijania    pętli while

3:    //    jeśli warunek    jest    fałszywy

4:

5:    finclude <iostream.h>

6:

7:    int main()

8:    {

9:    int licznik;

10:    cout « "No to ile razy sie przywitamy?:

11:    cin » licznik;

12:    while (licznik >    0)

13:    {

14:    cout « "Czesc!\n";

15:    licznik—;

16:    }

17:    cout « "licznik    wynosi: " « licznik « endl;

18:    return 0;

19:    >

EFEKT DZIAŁANIA:

No to ile razy sie przywitamy?: 2 Czesc!

Czesc!

licznik wynosi :■ 0

No to ile razy sie przywitamy?: 0 licznik wynosi: 0

ANALIZA:


113


W linii 10 użytkownik wprowadza wartość początkową zmiennej licznik. W linii 12 sprawdzane jest, czy zmienna licznik jest większa od 0. W linii 15, wewnątrz pętli while zmienna licznik jest zmniejszana o 1. Za pierwszym razem, kiedy użytkownik podał wartość 2, pętla wykonała się dwukrotnie. Jednak za drugim razem użytkownik podał wartość 0. W linii 12 sprawdzony został warunek na wartość zmiennej licznik. Ponieważ zmienna ta była równa 0, to pętla została od razu pominięta - nie wypisane zostało ani jedno „Cześć!”

Co zrobić, jeśli chcemy, aby program wypisał „Cześć!” przynajmniej raz? Pętla while nie daje takiej możliwości, ponieważ warunek wykonania sprawdzany jest jeszcze przed wejściem do pętli. Pewnym rozwiązaniem jest nadanie odpowiedniej wartości zmiennej licznik z wykorzystaniem instrukcji if tuż przed pętlą while:

if (licznik < 1)    // wymuś wartość minimalną

licznik =1;

Jednak to rozwiązanie jest dosyć naciągane i nieeleganckie.

Pętla do. . .while gwarantuje, że instrukcje w pętli zostaną wykonane przynajmniej raz. Warunek sprawdzany jest nie przed wykonaniem lecz po. Listing 8.7. demonstruje program podobny do poprzedniego jednak ze zmienioną pętlą.

Zaawansowane sterowanie programem

113


Listing 8.6. Pomijanie pętli while

1:    //    Listing 8.6

2:    II    Demonstracja pomijania    pętli while

3:    II    jeśli warunek jest    fałszywy

4:

5:    (tinclude <iostream.h>

6:

7:    int main()

8:    {

9:    int licznik;

10:    cout « "No to ile razy sie przywitamy?: ";

11:    cin » licznik;

12:    while (licznik >    0)

13:    {

14:    cout « "Czesc!\n";

15:    licznik—;

16:    }

17:    cout « "licznik    wynosi: " « licznik « endl;

18:    return 0;

19:    )

EFEKT DZIAŁANIA:

No to ile razy sie przywitamy?: 2 Czesc!

Czesc!

licznik wynosi: 0

No to ile razy sie przywitamy?: 0 licznik wynosi: 0

W linii 10 użytkownik wprowadza wartość początkową zmiennej licznik. W linii 12 sprawdzane jest, czy zmienna licznik jest większa od 0. W linii 15, wewnątrz pętli while zmienna licznik jest zmniejszana o 1. Za pierwszym razem, kiedy użytkownik podał wartość 2, pętla wykonała się dwukrotnie. Jednak za drugim razem użytkownik podał wartość 0. W linii 12 sprawdzony został warunek na wartość zmiennej licznik. Ponieważ zmienna ta była równa 0, to pętla została od razu pominięta - nie wypisane zostało ani jedno „Cześć!”

Co zrobić, jeśli chcemy, aby program wypisał „Cześć!" przynajmniej raz? Pętla while nie daje takiej możliwości, ponieważ warunek wykonania sprawdzany jest jeszcze przed wejściem do pętli. Pewnym rozwiązaniem jest nadanie odpowiedniej wartości zmiennej licznik z wykorzystaniem instrukcji if tuż przed pętlą while:

if (licznik < 1)    II wymuś wartość minimalna

licznik = 1;

Jednak to rozwiązanie jest dosyć naciągane i nieeleganckie.

Pętla do. . .while gwarantuje, że instrukcje w pętli zostaną wykonane przynajmniej raz. Warunek sprawdzany jest nie przed wykonaniem lecz po. Listing S.7. demonstruje program podobny do poprzedniego jednak ze zmienioną pętlą.


Wyszukiwarka

Podobne podstrony:
Poznaj C++ w$ godziny0129 Zaawansowane sterowanie programem 117Listing 8.10. Demonstracja wielokrotn
Poznaj C++ w$ godziny0119 Zaawansowane sterowanie programem 107Pętle while Pętla while pozwala na po
Poznaj C++ w$ godziny0121 Zaawansowane sterowanie programem 109 W liniach 12-15 wprowadzamy wartości
Poznaj C++ w$ godziny0123 Zaawansowane sterowanie programem 111 W linii 32 obliczana jest reszta z d
Poznaj C++ w$ godziny0127 Zaawansowane sterowanie programem 115Listing 8.8. Jeszcze raz pętla while
Poznaj C++ w$ godziny0131 Zaawansowane sterowanie programem 119EFEKT DZIAŁANIA: No to ile razy sie p
Poznaj C++ w$ godziny0133 Zaawansowane sterowanie programem 121 Jaki znak?
Poznaj C++ w$ godziny0135 Zaawansowane sterowanie programem 153 20:    break; 21: &nb
Poznaj C++ w$ godziny0009 viii Poznaj C++ w 24 godziny 8    Zaawansowane sterowanie p
Poznaj C++ w$ godziny0117 Godzina 8Zaawansowane sterowanie programem Działanie każdego większego pro
Poznaj C++ w$ godziny0081 Funkcje 67 Program wraca do funkcji main(), do linii 13. Okazuje się, że w
Poznaj C++ w$ godziny0122 110Godzina 8 duża liczbę: "; wartość pomijania: "; wartość
Poznaj C++ w$ godziny0158 Zaawansowane wykorzystanie wskaźników 147 32:    } 33: 34:
Poznaj C++ w$ godziny0160 Zaawansowane wykorzystanie wskaźników 149Do czego służy wskaźnik this Gdyb
Poznaj C++ w$ godziny0162 Zaawansowane wykorzystanie wskaźników 151 Zaawansowane wykorzystanie wskaź
Poznaj C++ w$ godziny0182 Zaawansowane referencje i wskaźniki 171 int PobierzWiek() const { return j
Poznaj C++ w$ godziny0184 Zaawansowane referencje i wskaźniki 173 Ponieważ wiemy, że obiekt nie będz
Poznaj C++ w$ godziny0190 Zaawansowane referencje i wskaźniki 179 ZAWSZE NIGDY Zawsze przekazuj p
Poznaj C++ w$ godziny0194 Zaawansowane funkcje 185 57: Prost.RysujKsztalt(); 58: cout «

więcej podobnych podstron