Применение 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(answer){ 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(answer){ 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"; } |
Исходя из вышесказанного, вы должны понимать, что обе описанные в сегодняшнем уроке конструкции полезны. Вам необходимо лишь научиться выбирать ту или иную, в зависимости от задачи.
Теперь, когда с циклами мы немного знакомы, вы можете перейти к следующему разделу данного урока. Мы приготовили для вас несколько примеров по сегодняшней теме.
Предыдущая
| Оглавление
| Следующая
| |
Предыдущая
| Оглавление
| Следующая
|
| | | | | |
Примеры к уроку.
Пример 1.
Постановка задачи.
Написать программу, которая находит сумму всех целых чисел от 1 до 5 включительно.
Код реализации.
#include <iostream>using namespace std;void main(){ int BEGIN=1; // начало диапазона суммируемых значений int END=5; // конец диапазона суммируемых значений int SUMM=0; // переменная для накопления суммы int i=BEGIN; // управляющая переменная цикла // проверка условия while(i<=END){ //(сравнение управляющей переменной с окончанием диапазона) SUMM+=i;// накапливание суммы i++;// изменение управляющей переменной } // показ результата cout<<"Result - "<<SUMM<<"\n\n";} |
©2015 arhivinfo.ru Все права принадлежат авторам размещенных материалов.