Написанные вами программы выполняются строчка за строчкой сверху вниз.
Однако, в некоторых случаях необходимо менять поведение программы,
например в зависимости от данных, которые передоставляет пользователь или другая программа.
За примерами далеко ходить не придётся, все мы пользуемся различными сайтами на которых нужна авторизация.
При вводе логина и пароля программа выполняет алгоритм проверки логина и пароля,
и в зависимости от результата проверки выполняет тот или иной алгоритм.
Рассмотрим основные управляющие конструкции if-else и else if в языке программирования С++, которые позволяют выполнить определенные блоки кода в зависимости от условий.
Напоминание:
- Блоки кода записываются внутри фигурных скобок {}
Оператор if-else
Оператор if-else используется для выполнения блока кода при определенном условии, иначе выполняется альтернативный блок кода.
Перевод на русский:
if - если
else if - иначе если
else - иначе
Синтаксис:
if (условие) {
// Блок кода, который выполняется, если условие истинно
}
Пример:
#include <iostream>
#include <windows.h>
#include <locale>
int main() {
// Установка кодировки консоли в UTF-8
SetConsoleCP(1251);
SetConsoleOutputCP(1251);
std::locale::global(std::locale(""));
std::cout << "Для подтверждения оплаты введите pin-код: ";
int pin;
std::cin >> pin;
if (pin == 3837) { // Проверка условия
std::cout << "Оплата успешно потверждена" << std::endl;
}
else {
std::cout << "Нерпавильный pin-код" << std::endl;
}
return 0;
}
В данном примере мы запрашиваем у пользователя pin-код, если введёный пин код равен 3837, тогда выводим уведомление об успехе, в противном случае показываем сообщение о том, что pin-код неправильный.
В этом примере мы запросили у пользователя логин, сравнили со словом "admin", если пользователь ввёл логин admin, то разрешаем доступ, в противном случае запрещаем.
Оператор else if
Оператор else if используется для проверки нескольких условий последовательно. Если предыдущее условие ложно, то проверяется следующее.
Пример:
#include <iostream>
#include <windows.h>
#include <locale>
int main() {
int number = 0; // Попробуйте класть сюда разные числа
if (number > 0) {
std::cout << "Число положительное" << std::endl;
}
else if (number < 0) {
std::cout << "Число отрицательное" << std::endl;
}
else {
std::cout << "Число равно нулю" << std::endl;
}
return 0;
}
В этом примере, если number больше 0, то выводим "Число положительное", иначе проверяем другое условие,
если number меньше 0, то выводим "Число отрицательное", в любом другом случае выводим "Число равно нулю".
Ещё пример:
#include <iostream>
#include <windows.h>
#include <locale>
int main() {
// Установка кодировки консоли в UTF-8
SetConsoleCP(1251);
SetConsoleOutputCP(1251);
std::locale::global(std::locale(""));
std::cout << "Введите логин: ";
std::string login;
std::cin >> login;
if (login == "admin") { // Проверка условия
std::cout << "Доступ разрешен для ADMIN!" << std::endl;
}
else if (login == "user") { // Проверка этого условия произойдёт, если первое условие было false
std::cout << "Доступ разрешен для USER!" << std::endl;
}
else {
std::cout << "Доступ запрещен!" << std::endl;
}
return 0;
}
А этом примере, так же как и в предыдущем мы проверяем несколько условий.
Оператор switch
Оператор switch используется для выполнения различных действий в зависимости от значения выражения. Он имеет следующий синтаксис:
Синтаксис:
switch (выражение) {
case значение1:
// Блок кода, если выражение == значение1
break;
case значение2:
// Блок кода, если выражение == значение2
break;
default:
// Блок кода, если выражение не совпадает ни с одним из значений
}}
Пример:
#include <iostream>
#include <windows.h>
#include <locale>
int main() {
// Установка кодировки консоли в UTF-8
SetConsoleCP(1251);
SetConsoleOutputCP(1251);
std::locale::global(std::locale(""));
int day = 3;
switch (day) {
case 1:
std::cout << "Понедельник" << std::endl;
break;
case 2:
std::cout << "Вторник" << std::endl;
break;
case 3:
std::cout << "Среда" << std::endl;
break;
default:
std::cout << "Неизвестный день" << std::endl;
}
return 0;
}
Мы рассмотрели основные управляющие конструкции if-else, else if и switch/case в языке программирования C++.
Понимание этих конструкций позволяет эффективно управлять порядком выполнения кода в зависимости от различных условий.