Завдання: Вкладені Оператори If
Вкладений оператор if — це просто оператор if всередині іншого оператора if. Така структура дозволяє перевіряти декілька умов послідовно та виконувати певні блоки коду.
nested_if.h
1234567891011121314if (condition1) { // Code block 1 if (condition2) { // Code block 2 if (condition3) { // Code block 3 } } }
Зовнішній оператор if виконує роль контролера, і залежно від його перевірки, може відкрити доступ до іншого оператора if всередині. Розглянемо ситуацію, коли потрібно визначити заробітну плату працівника залежно від його результативності.
main.cpp
12345678910111213141516171819202122232425#include <iostream> int main() { int current_salary = 1000; int completed_tasks = 17; int hours_worked = 37; // If the number of completed tasks is greater than 15, if (completed_tasks > 15) { // add an 20% increase to the current salary current_salary = current_salary + current_salary * 0.2; // And if the number of hours worked is more than 40 if (hours_worked > 40) { // add an additional 20% increase to the current salary current_salary = current_salary + current_salary * 0.2; } } std::cout << current_salary << std::endl; }
Цей код обчислює нову зарплату працівника на основі кількості виконаних завдань і відпрацьованих годин: підвищення на 20% застосовується, якщо кількість завдань перевищує 15, і додаткове підвищення на 20% — якщо кількість відпрацьованих годин перевищує 40. Як видно, поточний розрахунок становить 1200. Досягти цього результату можна лише за допомогою вкладених операторів if. Нижче наведено спроби отримати таку ж логіку без їх використання.
main.cpp
12345678910111213141516171819202122232425#include <iostream> int main() { int current_salary = 1000; int completed_tasks = 9; int hours_worked = 41; // If the number of completed tasks is greater than 15, if (completed_tasks > 15) { // add an 20% increase to the current salary current_salary = current_salary + current_salary * 0.2; } // If the number of hours worked is more than 40 if (hours_worked > 40) { // add an 20% increase to the current salary current_salary = current_salary + current_salary * 0.2; } std::cout << current_salary << std::endl; }
Спочатку може здатися, що це працює так само, але в цьому випадку працівник отримає додаткові 20% підвищення, незалежно від того, чи виконав він більше 15 завдань. Запустіть код і подивіться на результат — він показує значення 1200, хоча цього разу працівник не виконав більше 15 завдань.
main.cpp
1234567891011121314151617181920212223#include <iostream> int main() { int current_salary = 1000; int completed_tasks = 19; int hours_worked = 39; // If the number of completed tasks is greater than 15 // AND the number of of hours worked is more than 40 if (completed_tasks > 15 && hours_worked > 40) { // add an 20% increase to the current salary current_salary = current_salary + current_salary * 0.2; // add an 20% increase to the current salary current_salary = current_salary + current_salary * 0.2; std::cout << current_salary << std::endl; } std::cout << current_salary << std::endl; }
У цьому випадку може здатися, що все працює правильно, але, на жаль, це також невірно — результат 1000. Це тому, що якщо працівник виконає більше 15 завдань, але не відпрацює понад 40 годин, він нічого не отримає. Тому необхідно використовувати вкладені оператори if, щоб отримати правильну реалізацію.
Вкладені оператори if є надзвичайно корисними для створення процесів прийняття рішень і обробки складних сценаріїв у вашому коді. Завдяки ретельному проектуванню структури коду та підтримці його читабельності, можна ефективно використовувати вкладені оператори if для написання ефективних і підтримуваних програм.
Вкладені оператори if необхідні в окремих випадках, але не завжди. У третій секції буде розглянуто, коли, чому та як їх уникати.
Swipe to start coding
Ви створюєте систему продажу квитків у кінотеатр. Вартість квитків залежить від віку клієнта та того, чи це вихідний чи будній день.
- Використайте вкладені оператори if для визначення ціни квитка:
- Якщо клієнту менше 18 років, стягуйте:
12.0у вихідні8.0у будні
- Якщо клієнту від 18 до 60 років, стягуйте:
20.0у вихідні15.0у будні
- Якщо клієнту понад 60 років, стягуйте:
16.0у вихідні10.0у будні
- Якщо клієнту менше 18 років, стягуйте:
- Поверніть ціну квитка з функції.
Приклад
calculateTicketPrice(16, true) → 12.0
calculateTicketPrice(30, false) → 15.0
calculateTicketPrice(70, true) → 16.0
Рішення
Дякуємо за ваш відгук!
single
Запитати АІ
Запитати АІ
Запитайте про що завгодно або спробуйте одне із запропонованих запитань, щоб почати наш чат
Can you show an example of nested `if` statements in code?
What are some best practices for using nested `if` statements?
Are there alternatives to nested `if` statements for complex logic?
Awesome!
Completion rate improved to 7.69
Завдання: Вкладені Оператори If
Свайпніть щоб показати меню
Вкладений оператор if — це просто оператор if всередині іншого оператора if. Така структура дозволяє перевіряти декілька умов послідовно та виконувати певні блоки коду.
nested_if.h
1234567891011121314if (condition1) { // Code block 1 if (condition2) { // Code block 2 if (condition3) { // Code block 3 } } }
Зовнішній оператор if виконує роль контролера, і залежно від його перевірки, може відкрити доступ до іншого оператора if всередині. Розглянемо ситуацію, коли потрібно визначити заробітну плату працівника залежно від його результативності.
main.cpp
12345678910111213141516171819202122232425#include <iostream> int main() { int current_salary = 1000; int completed_tasks = 17; int hours_worked = 37; // If the number of completed tasks is greater than 15, if (completed_tasks > 15) { // add an 20% increase to the current salary current_salary = current_salary + current_salary * 0.2; // And if the number of hours worked is more than 40 if (hours_worked > 40) { // add an additional 20% increase to the current salary current_salary = current_salary + current_salary * 0.2; } } std::cout << current_salary << std::endl; }
Цей код обчислює нову зарплату працівника на основі кількості виконаних завдань і відпрацьованих годин: підвищення на 20% застосовується, якщо кількість завдань перевищує 15, і додаткове підвищення на 20% — якщо кількість відпрацьованих годин перевищує 40. Як видно, поточний розрахунок становить 1200. Досягти цього результату можна лише за допомогою вкладених операторів if. Нижче наведено спроби отримати таку ж логіку без їх використання.
main.cpp
12345678910111213141516171819202122232425#include <iostream> int main() { int current_salary = 1000; int completed_tasks = 9; int hours_worked = 41; // If the number of completed tasks is greater than 15, if (completed_tasks > 15) { // add an 20% increase to the current salary current_salary = current_salary + current_salary * 0.2; } // If the number of hours worked is more than 40 if (hours_worked > 40) { // add an 20% increase to the current salary current_salary = current_salary + current_salary * 0.2; } std::cout << current_salary << std::endl; }
Спочатку може здатися, що це працює так само, але в цьому випадку працівник отримає додаткові 20% підвищення, незалежно від того, чи виконав він більше 15 завдань. Запустіть код і подивіться на результат — він показує значення 1200, хоча цього разу працівник не виконав більше 15 завдань.
main.cpp
1234567891011121314151617181920212223#include <iostream> int main() { int current_salary = 1000; int completed_tasks = 19; int hours_worked = 39; // If the number of completed tasks is greater than 15 // AND the number of of hours worked is more than 40 if (completed_tasks > 15 && hours_worked > 40) { // add an 20% increase to the current salary current_salary = current_salary + current_salary * 0.2; // add an 20% increase to the current salary current_salary = current_salary + current_salary * 0.2; std::cout << current_salary << std::endl; } std::cout << current_salary << std::endl; }
У цьому випадку може здатися, що все працює правильно, але, на жаль, це також невірно — результат 1000. Це тому, що якщо працівник виконає більше 15 завдань, але не відпрацює понад 40 годин, він нічого не отримає. Тому необхідно використовувати вкладені оператори if, щоб отримати правильну реалізацію.
Вкладені оператори if є надзвичайно корисними для створення процесів прийняття рішень і обробки складних сценаріїв у вашому коді. Завдяки ретельному проектуванню структури коду та підтримці його читабельності, можна ефективно використовувати вкладені оператори if для написання ефективних і підтримуваних програм.
Вкладені оператори if необхідні в окремих випадках, але не завжди. У третій секції буде розглянуто, коли, чому та як їх уникати.
Swipe to start coding
Ви створюєте систему продажу квитків у кінотеатр. Вартість квитків залежить від віку клієнта та того, чи це вихідний чи будній день.
- Використайте вкладені оператори if для визначення ціни квитка:
- Якщо клієнту менше 18 років, стягуйте:
12.0у вихідні8.0у будні
- Якщо клієнту від 18 до 60 років, стягуйте:
20.0у вихідні15.0у будні
- Якщо клієнту понад 60 років, стягуйте:
16.0у вихідні10.0у будні
- Якщо клієнту менше 18 років, стягуйте:
- Поверніть ціну квитка з функції.
Приклад
calculateTicketPrice(16, true) → 12.0
calculateTicketPrice(30, false) → 15.0
calculateTicketPrice(70, true) → 16.0
Рішення
Дякуємо за ваш відгук!
single