Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
学ぶ ガード句 | 上級トピックス
C++の条件文

bookガード句

メニューを表示するにはスワイプしてください

アプリケーションがますます複雑になるにつれて、バグエラーの可能性も高まります。これに対処するため、開発者はコード品質を確保するためにさまざまな手法やプラクティスを採用しています。その中で近年注目されているのが、ガード句テクニックです。

例えば、ユーザーが学生であること、プレミアムアカウントを持っていること、接続されていることの3つの条件を満たしているかどうかを検証するアプリケーションを考えます。これらすべての条件が満たされた場合にのみ、アプリケーションはRequirements satisfiedという出力を行います。それ以外の場合は、初期化プロセスが失敗した特定のステップをコンソールに記録します。

この目的はネストされたif文を使って達成できますが、この方法ではコードが理解しにくく、新しい条件を追加する際に修正が困難になります。次のコードスニペットを見てください。

without_guard_clause.cpp

without_guard_clause.cpp

copy
123456789101112131415161718192021
#include <iostream> int main() { bool isStudent = true; // Change it 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 are not connected\n"; } else std::cout << "You don't have premium\n"; } else std::cout << "You are not a student\n"; }

ガード句テクニックを効果的に適用するには、任意のタイミングでreturnキーワードを使用して関数の実行を終了できることを覚えておくことが重要です。この手法では条件を逆にし、もしユーザーが学生でない場合はすぐにメッセージを表示し、main関数を終了します。これにより、ネストされたifツリーと不要なコードの実行を避けることができます。

with_guard_clause.cpp

with_guard_clause.cpp

copy
12345678910111213141516171819202122232425
#include <iostream> int main() { bool isStudent = true; // Change them to false and see the output 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 << "Requirements satisfied"; }

ガード句テクニックは、ソフトウェア開発者がコードの信頼性柔軟性安全性を高めるための強力な手法。これを導入することで、エラーの発生を減らし、コードの保守性を向上させ、全体的なソフトウェア品質を高めることが可能。

question mark

ガード句テクニックの主な目的は何か?

正しい答えを選んでください

すべて明確でしたか?

どのように改善できますか?

フィードバックありがとうございます!

セクション 3.  2

AIに質問する

expand

AIに質問する

ChatGPT

何でも質問するか、提案された質問の1つを試してチャットを始めてください

セクション 3.  2
some-alt