|   Войти

Циклы. Цикл while.

На прошлом уроке мы изучили цикл for, который применяется для повторения одной и той же операции известное число раз. Однако, бывают ситуации, когда точно не известно, сколько раз нужно повторять операции. Чтобы остановить их выполнение должно произойти определенное событие, например, нажатие какой-то клавиши. Для повторения одних и тех же операторов неопределенное количество раз используется оператор while. Его синтаксис следующий:

while (условие){

операторы;

}

 Пример применения цикла while:

int i=0; - объявляем переменную i типа  int и присваиваем ей значение 0;

while (i<=100 ){ - проверка условия. Если i меньше или равно 100, то выполняем следующие два оператора, заключенные в фигурные скобки.

   cout<<i<<” ”; - выводим на экран значение переменной i и пробел.

   i++; - увеличиваем значение переменной i на единицу.

} – конец цикла while.  Данный участок кода, будет выводить на экран числа от 0 до 100 через пробел. Как только переменная i станет равной 101, цикл прекратится. Результат будет таким же, как и с циклом for в примере с предыдущего урока:

 

Рассмотрим еще один пример использования цикла while. В одном из уроков мы писали программу, которая вычисляет математическое выражение. Мы вводили выражение, например 2+5, и программа выводила ответ: 2 + 5 = 7. После этого при нажатии на любую клавишу программа закрывалась. Изменим эту программу таким образом, чтобы программа закрывалась только при нажатие клавиши ESC, а при нажатии на любую другую клавишу программа должна снова запрашивать у нас ввод математического выражения. Таким образом, мы сможем вычислять сразу несколько выражений, не выходя из программы.

Скачайте следующую программу, написанную на языке C++, поместите скачанный файл IF02.CPP в папку C:\TCPP\BIN\.

Запустите DOSBox (Как настроить эту программу можно посмотреть ЗДЕСЬ).

Нажмите клавишу F3. Выберите файл IF02.CPP и нажмите клавишу Enter.

Откроется программа:

Рассмотрим подробно изменения, которые мы внесли в исходную программу. Описание исходной программы можно посмотреть в уроке, посвященном оператору if.

#include<iostream.h>

#include<conio.h>

void main(){

  long int a,b,c;

  char key;

  char pressed_key=0; - объявляем переменную pressed_key, типа char и присваиваем ей значение 0.

  while (pressed_key!=27){ - цикл while. Следующие операторы до конца цикла while (конец цикла – закрывающаяся фигурная скобка }) будут повторяться, пока не будет нажата клавиша ESС. Код этой клавиши 27. Другими словами пока переменная pressed_key не станет равна 27, программа снова и снова будет запрашивать математическое выражение и вычислять его. Если мы хотим, чтобы программа выходила по нажатию на другую клавишу, например, на маленькую английскую букву a, то мы бы написали while (pressed_key!=’a’){

    clrscr();

    cout<<"Введите математическое выражение: ";

    cin>>a>>key>>b;

 

    if (key=='+')

      c=a+b;

    if (key=='-')

      c=a-b;

    if (key=='*')

      c=a*b;

    if (key=='/')

      c=a/b;

 

    cout<<a<<key<<b<<"="<<c;

    cout<<"\n\nНажмите клавишу ESC для выхода или любую другую клавишу для продолжения:\n"; - выводим на экран предложение выйти или продолжить. Каждое «\n» переводит курсор на новую строчку.

    pressed_key=getch(); - переменной pressed_key присваиваем значение функции getch(), которая возвращает код нажатой клавиши. Таким образом, если мы, например, нажмем на клавишу «ПРОБЕЛ», то переменная pressed_key станет равна 32, а если на клавишу A (английская большая буква), то переменная pressed_key будет равна 65. Коды различных символов мы выводили на экран на предыдущем уроке.

  } – конец цикла while. Если на предыдущем шаге не была нажата клавиша ESC, то цикл повторится снова.

} – конец программы.

Чтобы запустить программу, нажимаем комбинацию клавиш Alt+R, выбираем в появившемся меню пункт Run и нажимаем клавишу Enter. Ни в коем случае не нажимайте для запуска программы комбинацию клавиш Ctrl+F9 – это закроет DOSBox!

При запуске программа просит ввести математическое выражение:

После ввода выражения и нажатия на клавишу Enter, программа вычислит значение выражения и предложит выйти или продолжить вычисления:

Если нажать клавишу ESC, то программа закроется, если же нажать любую другую клавишу, то программа снова запросит ввести математическое выражение:

Задание: 1) Измените программу таким образом, чтобы она закрывалась при нажатии на клавишу «q» (маленькая английская буква). Пришлите программу или ее скриншоты.2) Закроется ли программа, если ввести большую букву «Q»? Объясните. Проверьте результат.