如何使内部if语句转到外部if语句的'else`?

时间:2012-08-05 11:40:45

标签: if-statement

我在这篇文章中遇到了麻烦:

if (a)
{
    if (b)    // when this check fails, I need to go v
        doSomething(); //                            v
}                      //                            v
else                   //                           < here
    doSomethingElse(); 

我该怎么做?

UPD: if语句是否嵌套,因为a检查对象是否为空,防止因立即检查空对象参数而导致异常。

5 个答案:

答案 0 :(得分:2)

在可用时使用goto的唯一方法是使用单独的条件保护外部else语句的if分支,而不是使其成为{{} 1}}分支。

假设嵌套else之前有计算阻止您同时执行这两项检查,您可以这样做:

if

但是,如果条件中的代码字面上包含调用函数bool done = false; if (a) { ... if (b) { doSomething(); done = true; } } if (!a && !done) { doSomethingElse(); } doSomething,那么复制嵌套{{1}中doSomethingElse函数的调用没有任何害处。分支。

答案 1 :(得分:2)

改为:

if (a)
{
    if (b) {  
        doSomething();                            
    }
    else{
       doSomethingElse();
    }
}                      
else                  
    doSomethingElse(); 

答案 2 :(得分:1)

if (a)
{
    if (b)    
        doSomething();                       
    else
        doeSomethingElse();
}                                             
else                                  
    doSomethingElse(); 

答案 3 :(得分:0)

if(a && b)
  doSomething();
else
  doSomethingElse();

答案 4 :(得分:0)

你不能这样做吗?

if (a && b) {
    doSomething();
}
else {
    doSomethingElse();
}