Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Вивчайте Завдання: Вкладені Оператори If | Вступ до Умовних Операторів
Умовні Оператори C++

bookЗавдання: Вкладені Оператори If

Вкладений оператор if — це просто оператор if всередині іншого оператора if. Така структура дозволяє перевіряти декілька умов послідовно та виконувати певні блоки коду.

nested_if.h

nested_if.h

copy
1234567891011121314
if (condition1) { // Code block 1 if (condition2) { // Code block 2 if (condition3) { // Code block 3 } } }

Зовнішній оператор if виконує роль контролера, і залежно від його перевірки, може відкрити доступ до іншого оператора if всередині. Розглянемо ситуацію, коли потрібно визначити заробітну плату працівника залежно від його результативності.

main.cpp

main.cpp

copy
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

main.cpp

copy
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

main.cpp

copy
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 для написання ефективних і підтримуваних програм.

Note
Примітка

Вкладені оператори if необхідні в окремих випадках, але не завжди. У третій секції буде розглянуто, коли, чому та як їх уникати.

Завдання

Swipe to start coding

Ви створюєте систему продажу квитків у кінотеатр. Вартість квитків залежить від віку клієнта та того, чи це вихідний чи будній день.

  1. Використайте вкладені оператори if для визначення ціни квитка:
    • Якщо клієнту менше 18 років, стягуйте:
      • 12.0 у вихідні
      • 8.0 у будні
    • Якщо клієнту від 18 до 60 років, стягуйте:
      • 20.0 у вихідні
      • 15.0 у будні
    • Якщо клієнту понад 60 років, стягуйте:
      • 16.0 у вихідні
      • 10.0 у будні
  2. Поверніть ціну квитка з функції.

Приклад

calculateTicketPrice(16, true)12.0
calculateTicketPrice(30, false)15.0
calculateTicketPrice(70, true)16.0

Рішення

Все було зрозуміло?

Як ми можемо покращити це?

Дякуємо за ваш відгук!

Секція 1. Розділ 5
single

single

Запитати АІ

expand

Запитати АІ

ChatGPT

Запитайте про що завгодно або спробуйте одне із запропонованих запитань, щоб почати наш чат

Suggested prompts:

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?

close

Awesome!

Completion rate improved to 7.69

bookЗавдання: Вкладені Оператори If

Свайпніть щоб показати меню

Вкладений оператор if — це просто оператор if всередині іншого оператора if. Така структура дозволяє перевіряти декілька умов послідовно та виконувати певні блоки коду.

nested_if.h

nested_if.h

copy
1234567891011121314
if (condition1) { // Code block 1 if (condition2) { // Code block 2 if (condition3) { // Code block 3 } } }

Зовнішній оператор if виконує роль контролера, і залежно від його перевірки, може відкрити доступ до іншого оператора if всередині. Розглянемо ситуацію, коли потрібно визначити заробітну плату працівника залежно від його результативності.

main.cpp

main.cpp

copy
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

main.cpp

copy
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

main.cpp

copy
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 для написання ефективних і підтримуваних програм.

Note
Примітка

Вкладені оператори if необхідні в окремих випадках, але не завжди. У третій секції буде розглянуто, коли, чому та як їх уникати.

Завдання

Swipe to start coding

Ви створюєте систему продажу квитків у кінотеатр. Вартість квитків залежить від віку клієнта та того, чи це вихідний чи будній день.

  1. Використайте вкладені оператори if для визначення ціни квитка:
    • Якщо клієнту менше 18 років, стягуйте:
      • 12.0 у вихідні
      • 8.0 у будні
    • Якщо клієнту від 18 до 60 років, стягуйте:
      • 20.0 у вихідні
      • 15.0 у будні
    • Якщо клієнту понад 60 років, стягуйте:
      • 16.0 у вихідні
      • 10.0 у будні
  2. Поверніть ціну квитка з функції.

Приклад

calculateTicketPrice(16, true)12.0
calculateTicketPrice(30, false)15.0
calculateTicketPrice(70, true)16.0

Рішення

Switch to desktopПерейдіть на комп'ютер для реальної практикиПродовжуйте з того місця, де ви зупинились, використовуючи один з наведених нижче варіантів
Все було зрозуміло?

Як ми можемо покращити це?

Дякуємо за ваш відгук!

Секція 1. Розділ 5
single

single

some-alt