Увод в програмирането  alpha
Оператори за цикъл while и do while

Чрез операторите за цикъл се описва многократно изпълнение на 1 или няколко последователни оператори, които се наричат тяло на цикъла. Действия могат да се извършват преди или след изпълнението на цикъла.

Принципната разлика между операторите while и do while е в това къде се проверява условието за крайна цикъла. При while проверката се извършва в началото на цикъла, а при do while в края. От това следва, че тялото на цикъла в оператор do while винаги се изпълнява поне веднъж. While може да не се изпълни нито веднъж.

Разлика в синтатксиса:

while - след while ( израз ) няма ; ( точка и запетая )

do while - има ;

NB! Оператор може да е цикъл ( влагане на цикъл в цикъла )

while ( израз ) /whitespace/ -> изразът е празен

while ( израз ) {} -> the same

Компилаторът разглежда while без ; като начало на while, а със ; - край на do while;

Всички променливи в израза трябва да имат стойност:

дали при следващо изпълнение някоя от променливите се променя ако не се промененя - безкраен цикъл ( дали поне една от променливите се изменя ) -> зациклене умишлено безкраен чрез условие - в оператор прекъсване break

изразът никога не получава стойност false

Пример:

От клавиатурата се въвежда текст. Да се определи колко пъти даден символ се среща в текста.

        #include <iostream>
        #include <stdio.h> // <cstdio>

        using namespace std;
        
        int main()
        {
                int R, i;
                char symbol;
                cout<<"Въведете символ: ";
                symbol = getchar();
                getchar(); // за да работи правилно трябва да се махне символа от входящия буфер.
                cout<<"Въведете текста: \n";
                i = 0;
                while( ( R = getchar() ) != '\n' )
                        if ( R == symbol ) 
                                i++;
                cout<<"Честотата на символа в текста = "<<i<<endl;
                return 0;
        }

getchar() - връща int

Да се намери максимума и квадрата на максимума на двойка числа, въвеждана с потвърждаване.

        #include<iostream>
        #include<stdio.h>
        
        using namespace std;
        
        int main()
        {
                short n1, n2, max, R;
                long max2;
                
                do {
                        cout<<"Въведете първото число: ";
                        cin>>n1;
                        cout<<"Въведете второ число: ";
                        
                        if ( n1 >= n2 ) max = n1;
                        else
                                max = n2;
                                
                        cout<<"max= "<< max << endl;
                        
                        max2 = (long) max*max;
                        cout<<"max2= "<<max2<<endl;
                        
                        cout<<"Ще въведете ли още числа? ( Y/N )";
                        
                        R = getchar(); 
                        getchar();
                } while ( R == 'Y' || R=='y' );
                
                
                return 0;
        }