Цикл while в C++: разбираем с примерами
Цикл while
является важнейшим компонентом в любом языке программирования. Данный цикл выполняет определенные действия, пока условие истинно.
Структура цикла while
Цикл while
имеет самую простую структуру из всех циклов (по сравнению с тем же циклом for). Однако имеет несколько отличий:
while ( <условие выполнения> ) {
<выполняемый код>
}
Теперь давайте я вам подробнее расскажу об его синтаксисе:
- Ключевое слово
while
. - После, в круглых скобках, указываем логическое выражение. Цикл будет выполнятся до тех пор, пока оно истинно.
- Далее идет тело цикла. Это собственно тот код, который должен выполняться. Фигурные скобки можно опустить, в том случае, если мы указали лишь одну операцию.
Теперь, чтобы закрепить знания, давайте напишем простенькую программу, а затем разберем ее.
Пример
Данная программа поочередно получает числа, а затем выводит сообщения для каждого из них: четное или нечетное. Вот код:
setlocale(0, ""); // устанавливаем локаль
cout << "Программа определяет, четное число или нет." << endl;
cout << "Введите -1 для завершения работы программы." << endl;
int number;
cout << endl << "Ваше число: "; cin >> number;
while (number != -1) {
if (number % 2 == 0)
cout << "Четное" << endl;
else
cout << "Нечетное" << endl;
cout << "Введите число: ";
cin >> number;
}
Данная программа при ее запуске выдаст следующее:
Программа определяет, четное число или нет.
Введите -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++:
#include <iostream>
#include <stdlib.h>
#include <ctime>
using namespace std;
int main() {
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; // поздравление
return 0;
}
Вот пример работы программы:
Введите ограничения на число [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 ходов. Если не знаешь как это сделать, то задай вопрос в комментариях.
На этом наш урок закончен. Осталось только проверить свои знания!
В качестве домашнего задания, попытайтесь сделать программу, которая сома отгадывает ваше число. На этом все. Если статья оказалась полезной, то поделись ею в социальных сетях! Удачи!
Если хотите всегда быть в курсе последних новостей в мире программирования и IT, подписываетесь на мой Telegram-канал, где я делюсь свежими статьями, новостями и полезными советами. Буду рад видеть вас среди подписчиков!
Обсуждение