我有点困惑。如果没有goto
?
if(first_expression)
{
// ....
if(second_expression)
{
// ....
}
else
{
goto jump_out;
}
}
else
{
jump_out:
// ....
}
这是好方法吗?
bool expressionFailed = false;
if(first_expression)
{
if(second_expression)
{
// ....
}
else
expressionsFailed = true;
}
else
expressionsFailed = true;
if(expressionsFailed)
{
// ....
}
我无法使用&&
,因为在if(first_expression)
second_expression = false
之后的代码
答案 0 :(得分:2)
我对您的代码一无所知,但您可以这样做:
void on_error ()
{
//error stuff
}
int main ()
{
if(first_expression)
{
if(second_expression)
{
// ....
}
else
on_error();
}
else
on_error();
}
甚至更好:
void job()
{
if(first_expression)
{
if(second_expression)
{
// ....
}
else
throw;
}
else
throw;
}
int main () {
try
{
job();
}
catch ()
{
// err stuff
}
return 0;
}
答案 1 :(得分:2)
你走在正确的轨道上。我会将其简化为:
validate
答案 2 :(得分:0)
您可以按如下方式重写它:
if(first_expression)
{
// ....
if(second_expression)
{
// ....
}
}
if(!first_expression || (first_expression && !second_expression))
{
}