Конструкция do while.
Общий синтаксис и принцип работы do while:
do
{
действие;
}
while(условие);
|
Цикл do while похож на цикл while. Разница состоит в том, что в while
проверка условия производится сразу же при входе в цикл, и, лишь затем, если
условие истинно - выполняется действие. В do while в любом случае сначала
выполняется действие и только потом идет проверка условия. Если условие истинно,
выполнение действия продолжается, а если нет, то выполнение передается
следующему за while оператору. Другими словами, в отличие от while внутри do
while действие хотя бы один раз выполняется.
Применение do while на практике.
Предположим, нам необходимо написать программу, в которой пользователю
предоставляется право выбора какого-то действия несколько раз подряд. Реализуем
данную задачу сначала с помощью while, а затем с помощью do while.
#include <iostream>
using namespace std;
void main()
{
int answer,A,B,RES;
// запрос на выбор операции
cout<<"\nSelect operation:\n";
cout<<"\n 1 - if you want to see SUM.\n";
cout<<"\n 2 - if you want to see DIFFERENCE.\n";
cout<<"\n 3 - if you want to exit.\n";
cin>>answer;
while(answer!=3){ // проверка условия
switch(key){
case 1: // если пользователь выбрал сложение
cout<<"Enter first digit:\n";
cin>>A;
cout<<"Enter second digit:\n";
cin>>B;
RES=A+B;
cout<<"\nAnswer: "<<RES<<"\n";
break; // остановка switch
case 2: // если пользователь выбрал вычитание
cout<<"Enter first digit:\n";
cin>>A;
cout<<"Enter second digit:\n";
cin>>B;
RES=A-B;
cout<<"\nAnswer: "<<RES<<"\n";
break; // остановка switch
case 3: // если пользователь выбрал выход
cout<<"\nEXIT!!!\n";
break;
default: // если выбранное действие некорректено
cout<<"\nError!!! This operator isn't correct\n";
}
// запрос на выбор операции
cout<<"\nSelect operation:\n";
cout<<"\n 1 - if you want to see SUM.\n";
cout<<"\n 2 - if you want to see DIFFERENCE.\n";
cout<<"\n 3 - if you want to exit.\n";
cin>>answer;
}
cout<<"\nBye....\n";
}
|
В данном примере пользователю предлагается выбрать действие. Затем, после
ввода, программа проверяет: если это действие - выход из программы - программа
завершается, если нет, то производится вход в цикл, анализ действия и выполнение
математической операции. Затем программа, снова спросит у пользователя, что он
хочет сделать.
Данный код является неоптимальным решением. Как видите фрагмент
// запрос на выбор операции
cout<<"\nSelect operation:\n";
cout<<"\n 1 - if you want to see SUM.\n";
cout<<"\n 2 - if you want to see DIFFERENCE.\n";
cout<<"\n 3 - if you want to exit.\n";
cin>>answer;
|
повторяется несколько раз. В этом случае следует использовать do while.
Данная конструкция приведет код к надлежащему виду.
#include <iostream>
using namespace std;
void main()
{
int answer,A,B,RES;
do{ // вход в цикл
// запрос на выбор операции
cout<<"\nSelect operation:\n";
cout<<"\n 1 - if you want to see SUM.\n";
cout<<"\n 2 - if you want to see DIFFERENCE.\n";
cout<<"\n 3 - if you want to exit.\n";
cin>>answer;
// анализ действия
switch(key){
case 1: // если пользователь выбрал сложение
cout<<"Enter first digit:\n";
cin>>A;
cout<<"Enter second digit:\n";
cin>>B;
RES=A+B;
cout<<"\nAnswer: "<<RES<<"\n";
break; // остановка switch
case 2: // если пользователь выбрал вычитание
cout<<"Enter first digit:\n";
cin>>A;
cout<<"Enter second digit:\n";
cin>>B;
RES=A-B;
cout<<"\nAnswer: "<<RES<<"\n";
break; // остановка switch
case 3: // если пользователь выбрал выход
cout<<"\nEXIT!!!\n";
break;
default: // если выбранное действие некорректено
cout<<"\nError!!! This operator isn't correct\n";
}
} while(answer!=3);
cout<<"\nBye....\n";
}
|
Исходя из вышесказанного, вы должны понимать, что обе описанные в сегодняшнем
уроке конструкции полезны. Вам необходимо лишь научиться выбирать ту или иную, в
зависимости от задачи.
Теперь, когда с циклами мы немного знакомы, вы можете перейти к следующему
разделу данного урока. Мы приготовили для вас несколько примеров по сегодняшней
теме.