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

Примітка

Вкладені оператори 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

Рішення

solution.cpp

solution.cpp

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

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

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

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

single

Запитати АІ

expand

Запитати АІ

ChatGPT

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

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

Примітка

Вкладені оператори 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

Рішення

solution.cpp

solution.cpp

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

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

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

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

single

some-alt