私のプログラムはユーザー入力を待ち、適切な場合にそれを処理します。ユーザー入力をチェックして、特定の基準を満たしていることを確認する必要があります。これらの基準をすべて満たしていない場合は拒否されます。
擬似コードは次のようなものです。
if (fulfills_condition_1)
{
if (fulfills_condition_2)
{
if (fulfills_condition_3)
{
/*process message*/
}
else
cout << error_message_3; //where error_message_1 is a string detailing error
}
else
cout << error_message_2; //where error_message_2 is a string detailing error
}
else
cout << error_message_1; //where error_message_3 is a string detailing error
if
これらの条件の数が増える可能性があり、多くのカスケードステートメントの代わりにスイッチなどを使用してこれを表現するより適切な方法があるかどうか疑問に思っていました.
使える可能性があることはわかっています
if (fulfills_condition_1 && fulfills_condition_2 && fulfills_condition_3)
/*process message*/
else
error_message; //"this message is not formatted properly"
しかし、これは最初のものほど有用ではなく、問題がどこにあるかを示していません。
条件は大まかに重要度が高くなるように並べることができます。つまり、をチェックすることcondition_1
は、をチェックすることよりも重要でcondition_3
あるため、if
ステートメントは機能しますが、これを行うための一般的なより良い方法はありますか?