是否可以在不使用bool变量的情况下为所有这些设置多个if和其他一个?我正在谈论像这样的事情:
bool triggered = 0;
if (condition)
{
//code
triggered = 1;
}
if (condion2)
{
//code
triggered = 1;
}
if (!triggered)
{
//code
}
因此,如果这些都没有发生 - 会发生一些事情。在伪代码中,我会这样写:
{
if()
{
}
if()
{
}
}
else
{
}
是否有可能做出类似的事情?
答案 0 :(得分:3)
不,你不能这样做。你可以这样做:
if (condition1 || condition2) {
if (condition1) {
//code
}
if (condition2) {
//code
}
} else {
// code
}
但这意味着您必须两次测试condition1
和condition2
。如果有很多条件,第一个if
会很长。
我发现您的代码更适合triggered
变量。通常,已经有一个服务于此目的的变量。例如,表单验证代码通常看起来像这样:
std::string errors;
if (field1 is invalid) {
errors += "Field1 is invalid\n";
}
if (field2 is invalid) {
errors += "Field 2 is invalid\n";
}
if (errors == "") {
// process the form
} else {
// display error message
}