Zaawansowane sterowanie programem 109
W liniach 12-15 wprowadzamy wartości zmiennych. Linia 20 rozpoczyna pętlę while powtarzaną tak długo jak prawdziwe są trzy warunki:
□ mała nie jest większa niż duża
□ duża nie jest ujemna
□ mała nie przekroczyła dopuszczalnego zakresu (MAXMALA)
W linii 23 obliczamy resztę z dzielenia zmiennej mała przez 5000. Nie zmienia to wartości zmiennej. Jeśli jest ona wielokrotnością 5000, to warunek jest spełniony i na ekranie zostaje wypisana kropka. W linii 25 zmienna mała jest zwiększana o 1, w linii 28 odejmujemy 2 od zmiennej duża.
Jeśli któryś z trzech warunków w instrukcji while nie będzie prawdziwy, to pętla przestanie być wykonywana i program przejdzie do linii 31.
Zdarza się, że chcesz powrócić do początku pętli while jeszcze przed zakończeniem aktualnego powtórzenia. Instrukcja continue oferuje taką możliwość.
Możesz również chcieć wyjść z pętli wcześniej, niż na to zezwoli warunek. Pozwala na to instrukcja break. Przechodzi ona do instrukcji po pętli.
Listing 8.4. demonstruje działanie obydwu instrukcji. Tym razem gra z poprzedniego przykładu jest bardziej skomplikowana. Użytkownik wprowadza wartości: mała, duża, cel i pomiń. Zmienna mała będzie zwiększana o 1, zmienna duża będzie zmniejszana o 2. Zmniejszanie będzie pominięte, gdy zmienna mała będzie wielokrotnością zmiennej pomiń. Gra kończy się, gdy zmienna mała przyjmie większą wartość niż zmienna duża. Jeśli zmienna duża osiągnie wartość zmiennej cel to wyświetlany jest komunikat i gra również się kończy.
Zadaniem użytkownika jest podać taką wartość zmiennej cel (odpowiednią dla zmiennej duża), aby gra się zakończyła zanim zmienna mała stanie się większa niż duża.
1: // Listing 8.4
2: // Demonstracja break i continue
3:
4: tinclude <iostream.h>
7: {
8: unsigned short mała;
9: unsigned long duża;
10: unsigned long pomiń;
11: unsigned long cel;
12: const unsigned short MAXMALA=65535;
13:
14: cout « "Podaj mała liczbę: ";
W liniach 12-15 wprowadzamy wartości zmiennych. Linia 20 rozpoczyna pętlę while powtarzaną tak długo jak prawdziwe są trzy warunki:
□ mała nie jest większa niż duża
□ duża nie jest ujemna
□ mała nie przekroczyła dopuszczalnego zakresu (MAXMALA)
W linii 23 obliczamy resztę z dzielenia zmiennej mała przez 5000. Nie zmienia to wartości zmiennej. Jeśli jest ona wielokrotnością 5000, to warunek jest spełniony i na ekranie zostaje wypisana kropka. W linii 25 zmienna mała jest zwiększana o 1, w linii 28 odejmujemy 2 od zmiennej duża.
Jeśli któryś z trzech warunków w instrukcji while nie będzie prawdziwy, to pętla przestanie być wykonywana i program przejdzie do linii 31.
Zdarza się, że chcesz powrócić do początku pętli while jeszcze przed zakończeniem aktualnego powtórzenia. Instrukcja continue oferuje taką możliwość.
Możesz również chcieć wyjść z pętli wcześniej, niż na to zezwoli warunek. Pozwala na to instrukcja break. Przechodzi ona do instrukcji po pętli.
Listing 8.4. demonstruje działanie obydwu instrukcji. Tym razem gra z poprzedniego przykładu jest bardziej skomplikowana. Użytkownik wprowadza wartości: mała. duża. ceł i pomiń. Zmienna mała będzie zwiększana O 1, zmienna duża będzie zmniejszana o 2. Zmniejszanie będzie pominięte, gdy zmienna mała będzie wielokrotnością zmiennej pomiń. Gra kończy się, gdy zmienna mała przyjmie większą wartość niż zmienna duża. Jeśli zmienna duża osiągnie wartość zmiennej cel to wyświetlany jest komunikat i gra również się kończy.
Zadaniem użytkownika jest podać taką wartość zmiennej cel (odpowiednią dla zmiennej duża), aby gra się zakończyła zanim zmienna mała stanie się większa niż duża.
Listing 8.4. break i continue
1: // Listing 8.4
2: // Demonstracja break i continue
3:
4: #include <iostream.h>
5:
6: int main()
7: {
8: unsigned short mała;
9: unsigned long duża;
10: unsigned long pomiń;
11: unsigned long cel;
12: const unsigned short MAXMALA=65535;
13
cout « "Podaj mała liczbę: cin » mała;
14
15