我的程序等待用户输入,并在适当的时候处理它。我需要检查用户输入以确保它满足某些标准,如果它不满足所有这些标准,它将被拒绝。
伪代码类似于:
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
这些条件的数量有可能会增加,我想知道是否有一种更简洁的方法来使用 switch 或类似的东西来表示这一点,而不是使用大量的级联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
语句确实有效 - 但一般来说有更好的方法吗?