Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Техніка Варти | Поглиблені теми
C++ Умовні оператори
course content

Зміст курсу

C++ Умовні оператори

C++ Умовні оператори

1. Вступ до Умовних Операторів
2. Практика умовного потоку управління
3. Поглиблені теми

bookТехніка Варти

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

Пам'ятаєте глави, в яких обговорювалося використання вкладених операторів if? Хоча іноді вони необхідні для забезпечення коректної поведінки, є ситуації, коли їх краще уникати.

Наприклад, ми хочемо створити програму, яка буде перевіряти:

  1. Чи користувач є студентом.
  2. Чи користувач має підписку.
  3. Чи користувач має підключений.

Якщо і тільки якщо всі ці вимоги задовольняються, виведіть результат:

В іншому випадку, виведіть у консоль конкретний крок, на якому процес ініціалізації завершився невдачею.

Otherwise, log in the console the specific step where the initialization process fails.

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

cpp

without_guard_clause

copy
12345678910111213141516171819202122
#include <iostream> int main() { // You can change them to false and see how output will change bool isStudent = true; bool isPremium = true; bool isConnected = true; if (isStudent) { if (isPremium) { if (isConnected) { std::cout << "Is student\nIs premium\nIs connected"; } else std::cout << "You don't have premium\n"; } else std::cout << "You are not connected\n"; } else std::cout << "You are not a student\n"; }

Щоб ефективно застосовувати техніку варта, важливо пам'ятати, що ми можемо завершити виконання програми у будь-який момент за допомогою ключового слова return. У цьому підході ми змінюємо наші умови на протилежні, тобто якщо користувач не є учнем, ми негайно виводимо повідомлення і завершуємо програму. Це зроблено для того, щоб уникнути вкладеного дерева if і непотрібного виконання коду, коли він не має ніякої мети.

cpp

with_guard_clause

copy
1234567891011121314151617181920212223242526
#include <iostream> int main() { // You can change them to false and see how output will change bool isStudent = true; bool isPremium = true; bool isConnected = true; if (!isStudent) { std::cout << "You are not a student\n"; return 0; } if (!isPremium) { std::cout << "You don't have premium\n"; return 0; } if (!isConnected) { std::cout << "You are not connected\n"; return 0; } std::cout << "Is student\nHas premium\nIs connected"; }

The Clause Guard Technique is a powerful tool in the arsenal of software developers striving for code reliability, flexibility and safety. By implementing it developers can reduce the amount of errors, improve code maintainability, and enhance overall software quality.

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

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

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

Секція 3. Розділ 2
some-alt