Оператор while позволяет повторять выполнение оператора до тех пор, пока указанное выражение не станет ложным.
Синтаксис
iteration-statement :
while ( expression ) statement
Объект expression должен иметь арифметический тип или тип указателя. Выполнение происходит следующим образом:
- Вычисляется expression .
- Если expression изначально имеет значение false, тело while оператора никогда не выполняется, и управление передается от while оператора к следующему оператору в программе. Если expression имеет значение true (ненулевое), выполняется текст инструкции и процесс повторяется, начиная с шага 1.
Выполнение оператора while прерывается, если в теле оператора выполняется оператор break , goto или return . Для прерывания итерации без выхода из цикла while используйте оператор continue . Оператор continue передает управление в следующую итерацию оператора while .
Вот пример оператора while :
while ( i >= 0 )
В этом примере производится копирование символов из string2 в string1 . Если i значение больше или равно 0, то string2[i] присваивается string1[i] и i уменьшается. Когда значение переменной i становится равным 0 (или меньше 0), выполнение оператора while прекращается.
Уроки C++ с нуля / Урок #6 — Циклы For, While, Do while
Источник: learn.microsoft.com
Цикл while
Цикл while в C++: синтаксис и игра
Цикл while является важнейшим компонентов в любом языке программирования. Данный цикл выполняет определенные действия, пока условие истинно.
Структура цикла while
Цикл while имеет самую простую структуру из всех циклов (по сравнению с тем же циклом for). Однако имеет несколько отличий:
Теперь давайте я вам подробнее расскажу об его синтаксисе:
- Ключевое слово while .
- После, в круглых скобках, указываем логическое выражение. Цикл будет выполнятся до тех пор, пока оно истинно.
- Далее идет тело цикла. Это собственно тот код, который должен выполняться. Фигурные скобки можно опустить, в том случае, если мы указали лишь одну операцию.
Теперь, чтобы закрепить знания, давайте напишем простенькую программу, а затем разберем ее.
Пример
Данная программа поочередно получает числа, а затем выводит сообщения для каждого из них: четное или нечетное. Вот код:
setlocale ( 0 , «» ) ; // устанавливаем локаль
cout << «Программа определяет, четное число или нет.» << endl ;
cout << «Введите -1 для завершения работы программы.» << endl ;
int number ;
cout << endl << «Ваше число: » ; cin >> number ;
while ( number != — 1 ) <
if ( number % 2 == 0 )
cout << «Четное» << endl ;
cout << «Нечетное» << endl ;
cout << «Введите число: » ;
cin >> number ;
Python с нуля. Урок 4 | Циклы (for, while)
Данная программа при ее запуске выдаст следующее:
Вывод нашей программы
Программа определяет, четное число или нет.
Введите -1 для завершения работы программы.
Ваше число: 832
Ваше число: 91
Ваше число: -1
Process returned 0 (0x0) execution time : 5.936 s
Press any key to continue.
Теперь давайте подробнее разберем пример:
- Строка 1: устанавливаем локаль.
- Строки 3-4: выводим краткое описание программы.
- Строки 6-8: вводим первое число.
- Строки 10-16: это цикл while . Давайте его рассмотрим поподробнее:
- в качестве логического выражения выступает следующее условие: number != -1 . Пока введенное число не будет равным -1 , цикл будет выполняться;
- далее идет оператор ветвления if. В нем мы проверяем число. Если оно оказывается четным, то мы выводим соответствующее сообщение. Иначе, выводим «Нечетное»;
- ну и в конце, мы считываем очередное число, которое будет обработано в следующей итерации цикла while;
- Конец программы.
По правде говоря, в данном случае лучше бы подошел цикл do while. Его использование позволило бы сэкономить немного места. Чтобы узнать почему, пройдите по ссылке.
while: реализуем простую игру
Теперь давайте соберем все свои знания которые касаются цикла while и создадим полноценное консольное приложение.
Оно будет делать следующее:
- Программа загадывает число из определенного промежутка.
- Пользователь вводит число.
- Программа выводит следующее:
- мое число меньше;
- ты угадал;
- мое число больше;
- Затем мы возвращаемся к пункту 2 до тех пор, пока пользователь не угадает число.
Вот суть программы. Вот ее реализация на C++:
using namespace std ;
setlocale ( 0 , «» ) ;
srand ( time ( 0 ) ) ; // задаем зерно случайной последовательности
int l , r ; // границы случайного числа
cout << «Введите ограничения на число [l, r]: » ;
cin >> l >> r ; // ввод чисел
int number = l + rand ( ) % ( r — l + 1 ) ; // случайное число
int userNumber ;
cout << endl << «Твое число: » ;
cin >> userNumber ;
while ( number != userNumber ) < // цикл while
if ( number < userNumber ) // проверка
cout << «Мое число меньше » << userNumber << endl ;
else if ( number > userNumber ) // иначе
cout << «Мое число больше » << userNumber << endl ;
cout << «Попробуй еще раз: » ;
с in >> userNumber ;
cout << endl << «Ты угадал!» << endl ; // поздравление
Вот пример работы программы:
Вывод нашей программы
Введите ограничения на число [l, r]: -14 20
Твое число: 0
Мое число меньше 0
Попробуй еще раз: -7
Мое число меньше -7
Попробуй еще раз: -11
Process returned 0 (0x0) execution time : 8.170 s
Press any key to continue.
Здесь для вас должно быть понятным. Однако отмечу лишь строку №8. В ней задается зерно псевдослучайных чисел (если интересно, пройдите по ссылке и почитайте на Википедии). Попробуйте поиграть с данной программой сами.
Можете попробовать сыграть следующим образом: задайте ограничения от 0 до 1000000. После чего, попытайся отгадать число за 25 ходов. Если не знаешь как это сделать, то задай вопрос в комментариях.
На этом наш урок закончен. Осталось только проверить свои знания!
В качестве домашнего задания, попытайтесь сделать программу, которая сома отгадывает ваше число. На этом все. Если статья оказалась полезной, то поделись ею в социальных сетях! Удачи!
Источник: codelessons.ru