Instrukcja pętli for i while
Transkrypt
Instrukcja pętli for i while
Instrukcja pętli for i while Znasz już sposób postępowania w wypadku, gdy dana czynność ma się powtórzyć wiele razy: stosujesz wtedy instrukcje iteracyjne, czyli pętle. W języku C++ mamy trzy instrukcje pętli. Pierwszą z nich jest pętla for, której będziemy zwykle używać w sytuacjach, gdy liczba przebiegów jest ustalona jeszcze przed wejściem do pierwszego obiegu pętli. Popatrz na poniższy przykład: --------------------------------------------------------------------------------------------for (int i=0; { cout « i « ", } i<10; i=i+l) "; --------------------------------------------------------------------------------------------Zamieszczony fragment kodu odpowiada za wypisanie na ekranie monitora wszystkich dziesięciu cyfr z przecinkiem umieszczonym po każdej z nich. Po słowie kluczowym for występuje nawias, w którym wpisuje się warunek sterujący pętlą. Po nawiasie podaje się instrukcję, która ma być powtarzana w pętli. Można w tym miejscu umieścić blok instrukcji, wtedy wszystkie one będą się wykonywały w pętli. Chociaż w naszym przykładzie w pętli wykonuje się tylko jedna instrukcja, ujęliśmy ją w klamry, nie jest to jednak konieczne. Składnia pętli for for (instrukcja początkowa; warunek sterujący; instrukcja kroku) instrukcja; gdzie: instrukcja początkowa warunek sterujący instrukcja kroku - instrukcja wykonana przed pierwszym obiegiem pętli, zwana również inicjującą - wyrażenie, którego logiczna wartość jest badana przed każdym obiegiem pętli -jeśli jego wartość jest true (czyli jest różna od zera), to pętla wykona się kolejny raz, w przeciwnym wypadku następuje wyjście z pętli - instrukcja wykonana po każdym przebiegu pętli, najczęściej modyfikuje tak zwany licznik pętli Rozważmy teraz prosty przykład wyświetlający w kolumnie liczby od 0 do 20. Przy liczbach niepodzielnych przez 3 znajduje się odpowiedni komentarz. Oto program: ------------------------------------------------------------------------------------------------------------ ------------------------------------------------------------------------------------------------------------2.17 Instrukcja kroku postaci i++ jest instrukcją inkrementacji zmiennej i odpowiada wyrażeniu i = i+1. Ten bardzo wygodny skrót bywa używany nie tylko w pętlach. instrukcja inkrementacji w c++ i++ odpowiada i = i+1 instrukcja dekrementacji w c++ i-- odpowiada i = i-1 Pętla for w C++ jest bardzo elastyczna. Możemy na przykład w tej pętli pominąć dowolną instrukcję występującą w nawiasie, musimy jednak zachować średnik. Pętla ta może wyglądać tak: for ( ; ; ), co oznacza pętlę nieskończoną. Brak warunku sterującego oznacza, że jest on zawsze prawdziwy. Pętla ta nie wymaga żadnego licznika, dzięki czemu można ją upodobnić w działaniu do pętli, które omawiamy w dalszej części rozdziału. Instrukcja pętli while Kolejną pętlą w C++ jest pętla while. Pętla ta wykonuje się kolejny raz, gdy wyrażenie jest prawdziwe (czyli ma wartość różną od zera). Składnia pętli while while (wyrażenie) instrukcja; gdzie: wyrażenie -wyrażenie przyjmujące wartość logiczną „prawda" albo „fałsz" instrukcja - instrukcja wykonywana w pętli Napiszmy prosty program wyświetlający na ekranie znaki podane z klawiatury do momentu, aż podamy znak „k". ---------------------------------------------------------------------------------------------------------------- ----------------------------------------------------------------------------------------------------------------2.18 Jeśli w tym programie użytkownik poda na początku znak „k", pętla while nie wykona się nawet jeden raz. Przedstawimy teraz nieco bardziej skomplikowany przykład z zastosowaniem pętli while: Program oblicza wynik dzielenia całkowitego dwóch liczb podanych z klawiatury. Algorytm polega na wielokrotnym odejmowaniu dzielnika od dzielnej i liczeniu wykonanych powtórzeń w pętli while. -------------------------------------------------------------------------------------------------2.19 Pętla while sprawdza warunek przed wykonaniem instrukcji wewnątrz pętli, instrukcja ta zatem może nie wykonać się wcale.