Модуль: (C++) Оператор цикла с условием - while


Задача

1/21

Конструкция оператора цикла с условием (while)

Теория Нажмите, чтобы прочитать/скрыть

Цикл с условием. Оператор while
Изучая цикл for, мы говорили, что если известно число повторений каких-либо действий, то можно сократить программу, используя оператор цикла for. А что делать, если количество повторений неизвестно? А такое бывает довольно часто.
 
Пример
Вспомнив перевод числа из десятичной системы счисления в любую другую, нам необходимо делить число (а затем результат деления) на основание системы счисления, пока в ответе мы не получим ноль. Сколько раз мы поделим неизвестно. А программ, реализующих такой алгоритм достаточно много. 

Как же реализовывать алгоритм, если нам неизвестно точное число повторений?

Для таких случаев в программировании существует оператор цикла с условием. 
В языке программировании Python, оператор цикла с условием начинается со слова while и имеет следующую конструкцию.
while (<условие>) 
{
  тело цикла
}

Как нам уже известно:
- условие - это выражение, результатом которого может быть либо истина, либо ложь (как в условном операторе);
- тело цикла - это команды, которые необходимо повторить, они записываются с отступами.

Как работает оператор?
1. Сначала программа вычисляет условие, стоящее в скобках после слова while. Если условие выполнятся (истинно), то программа выполняет оператор(ы), содержащийся в теле цикла.
2. После того, как завершено выполнение тела цикла, программа возвращается на проверку условия и заново его проверяет.
3. Эти действия (проверка условия - выполнение тела цикла) повторяются до тех пор, пока условие не станет ложным.
4. Если при первом выполнении данного оператора условие сразу не выполняется (ложно), то программа ни разу не выполнит тело цикла.

Анализируя работу данного оператора, должно стать ясным, что в теле цикла должен находиться оператор, который влияет на условие.
Например, в цикле может увеличиваться значение переменной, используемой в условии.

Пример программы, которую мы назовем "Молчаливый счет".
Заставим программу вместо нас считать, например, до 10.
Программа должна выводить фразы "Start" и "Finish", и между этими действиями выводить на экран числа, которые считаются.

Например, так:
Start
1 2 3 4 5 6 7 8 9 10
Finish

Программа с использованием цикла while будет выглядеть следующим образом:
#include<iostream>
using namespace std;
main()
{
	int i;
	cout << "Start\n";
	i = 1;
	while(i <= 10)
	  {
	  	cout << i << " ";
	  	i++;  // Оператор, который влияет на изменение переменной в условии
	  }
	cout << "\nFinish";
}

В данной программе мы присваиваем значение переменной i = 1 - начало отсчета.
Далее, пока у нас значение переменной i не больше (то есть меньше либо равно) нужного нам значения, мы: 
 1. выводим на экран значение переменной i;
 2. увеличиваем значение переменной i на 1 - данный оператор влияет на значение условия, стоящего в скобках. Переменная i увеличивается, то есть в какой-то момент условие i <= 10 станет ложным. Это произойдет, когда i станет равно 11. В этом случае тело цикла выполняться уже не будет, и программа будет выполнять следующий после цикла оператор, т.е. cout << "\nFinish".

Задача

Запустите программу, проанализируйте результат ее работы.