Зміст курсу
C++ Умовні оператори
C++ Умовні оператори
Техніка Варти
Оскільки застосунки стають дедалі складнішими, зростає ймовірність виникнення багів та помилок. Щоб боротися з цим, розробники звертаються до різних методів і практик для забезпечення якості коду. Однією з таких технік, яка набула популярності в останні роки, є техніка варти
Пам'ятаєте глави, в яких обговорювалося використання вкладених операторів if
? Хоча іноді вони необхідні для забезпечення коректної поведінки, є ситуації, коли їх краще уникати.
Наприклад, ми хочемо створити програму, яка буде перевіряти:
- Чи користувач є студентом.
- Чи користувач має підписку.
- Чи користувач має підключений.
Якщо і тільки якщо всі ці вимоги задовольняються, виведіть результат:
without_guard_clause
#include <iostream> int main() { bool isStudent = true; // Change them to false and see the output bool isPremium = true; bool isConnected = true; if (isStudent) if (isPremium) if (isConnected) std::cout << "Requirements satisfied"; else std::cout << "You don't have premium"; else std::cout << "You are not connected"; else std::cout << "You are not a student"; }
Otherwise, log in the console the specific step where the initialization process fails.
without_guard_clause
#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 << "Requirements satisfied"; else std::cout << "You don't have premium"; else std::cout << "You are not connected"; else std::cout << "You are not a student"; }
To apply the guard clause technique effectively, it's important to remember that we can terminate program execution at any moment by using the return
keyword. In this approach, we reverse our conditions, meaning that if a user is not a student, we immediately display a message and terminate the program. This is done to avoid nested if
tree and unnecessary execution of code when it serves no purpose.
Дякуємо за ваш відгук!