Лекція 4: Умовні конструкції (if, else, switch)
У реальному житті ми постійно кажемо: "Якщо піде дощ, я візьму парасольку, інакше — піду в футболці". У С++ ця логіка працює майже так само.
1. Оператори порівняння
Перш ніж писати умови, треба навчитися порівнювати значення. Результатом будь-якого порівняння є true (правда) або false (брехня).
| Оператор | Значення | Приклад (x=5, y=10) | Результат |
|---|---|---|---|
> |
Більше | x > y |
false |
< |
Менше | x < y |
true |
>= |
Більше або дорівнює | x >= 5 |
true |
<= |
Менше або дорівнює | y <= 10 |
true |
== |
Дорівнює | x == 5 |
true |
!= |
Не дорівнює | x != y |
true |
⚠️ Увага! Найпоширеніша помилка:
=— це присвоєння (покласти значення в ящик).==— це перевірка на рівність.
Якщо ви напишете if (x = 5), програма не перевірить, чи x дорівнює 5, а зробить його рівним 5, і це завжди буде вважатися "правдою".
2. Конструкція if та else
Це базовий інструмент розгалуження програми.
Найпростіша умовна конструкція — це if. Вона виконує код тільки якщо умова істинна. Якщо потрібно виконати один код при істинній умові, а інший — при хибній, використовуйте else.
Синтаксис:
if (умова) {
// Код, що виконується, якщо умова правдива (true)
} else {
// Код, що виконується, якщо умова хибна (false)
}
Приклад: Перевірка повноліття
#include <iostream>
using namespace std;
int main() {
int age;
cout << "Скільки вам років? ";
cin >> age;
if (age >= 18) {
cout << "Ласкаво просимо! Доступ дозволено." << endl;
} else {
cout << "Вибачте, цей контент тільки для дорослих." << endl;
cout << "Приходьте через " << 18 - age << " років." << endl;
}
return 0;
}
3. Конструкція else if (Багато варіантів)
Що робити, якщо умов більше ніж дві? Наприклад, перевірка оцінки студента.
#include <iostream>
using namespace std;
int main() {
int score;
cin >> score;
if (score >= 90) {
cout << "Оцінка: А (Відмінно!)" << endl;
} else if (score >= 75) {
cout << "Оцінка: В (Добре)" << endl;
} else if (score >= 60) {
cout << "Оцінка: С (Задовільно)" << endl;
} else {
cout << "Оцінка: F (Незадовільно, на перездачу!)" << endl;
}
return 0;
}
Програма перевіряє умови зверху вниз. Щойно знаходить правдиву — виконує її блок і виходить з усієї конструкції.
4. Логічні оператори (Об'єднання умов)
Іноді треба перевірити декілька речей одночасно. Наприклад: "Якщо сьогодні субота І гарна погода, я йду в парк".
Для об'єднання кількох умов використовуються логічні оператори:
&&(Логічне І / AND): Обидві умови мають бутиtrue.||(Логічне АБО / OR): Хоча б одна умова має бутиtrue.!(Логічне НЕ / NOT): Змінюєtrueнаfalseі навпаки.
Приклад:
#include <iostream>
#include <string>
using namespace std;
int main() {
int hour = 20;
bool isWeekend = true;
string day = "Friday";
// Якщо (зараз менше 22:00) І (сьогодні вихідний АБО п'ятниця)
if (hour < 22 && (isWeekend || day == "Friday")) {
cout << "Можна ще пограти в ігри!" << endl;
}
return 0;
}
Додатковий приклад: Перевірка прав на керування
#include <iostream>
using namespace std;
int main() {
int age;
bool hasLicense;
cout << "Введіть вік: ";
cin >> age;
cout << "Чи є у вас права? (1 - так, 0 - ні): ";
cin >> hasLicense;
if (age >= 18 && hasLicense) {
cout << "Ви можете керувати автомобілем!" << endl;
} else {
cout << "Ви не можете керувати автомобілем." << endl;
}
// Приклад з АБО
if (age < 6 || age > 65) {
cout << "Ви маєте право на пільги." << endl;
}
return 0;
}
5. Конструкція switch
Коли нам потрібно порівняти одну змінну з багатьма конкретними значеннями (наприклад, пункти меню), зручніше використовувати switch.
#include <iostream>
using namespace std;
int main() {
int choice;
cout << "Меню:\n1. Кава\n2. Чай\n3. Вода\nВаш вибір: ";
cin >> choice;
switch (choice) {
case 1:
cout << "Ваша кава готується..." << endl;
break; // break обов'язковий! Інакше виконаються всі наступні кейси
case 2:
cout << "Ось ваш чай." << endl;
break;
case 3:
cout << "Тримайте воду." << endl;
break;
default:
// Виконується, якщо жоден варіант не підійшов
cout << "Невідомий вибір!" << endl;
}
return 0;
}
Важливо: switch працює тільки з цілими числами (int, char), він не вміє порівнювати діапазони (наприклад, "більше 10") або рядки тексту.
Практичні завдання до Лекції 4
Виконайте ці завдання в своєму середовищі розробки.
Завдання 1: Парне чи непарне?
Напишіть програму, яка просить користувача ввести ціле число. Використовуючи оператор остачі від ділення (%), перевірте і виведіть на екран, парне це число чи непарне.
Підказка: Число парне, якщо остача від ділення на 2 дорівнює 0.
Завдання 2: Логін та пароль
Створіть примітивну систему авторизації.
- Задайте в коді "правильний" логін (наприклад, "admin") і пароль (наприклад, 12345).
- Попросіть користувача ввести їх.
- Якщо логін І пароль правильні — напишіть "Доступ надано".
- Якщо пароль неправильний — напишіть "Невірний пароль".
- В інших випадках — "Користувача не знайдено".
Завдання 3: Міні-калькулятор через Switch
Напишіть програму, яка:
- Просить ввести два числа.
- Просить ввести знак операції (
+,-,*,/— типchar). - За допомогою
switchвиконує відповідну дію і виводить результат. - Додатково: Додайте перевірку у блоці ділення, щоб не можна було поділити на нуль (це викликає помилку програми).