是否可以基于两个(或多个)先前的“ if”的结果来创建“ else”?

Chr*_*s A 4 java

目前,我在代码if (roobaf)块中有一些代码依赖foo并且bar为假。我可以在块中再次检查这些条件,但是感觉像是不必要的代码重复。

if (foo) {
    // some code
}

/*else*/ if (bar) {   // bar is a condition which needs to be checked 
                      // whether 'foo' is true or false
// more code
}

if (roobaf) { 

   if (!foo && !bar) {
      // even more code
    }

}

Run Code Online (Sandbox Code Playgroud)

问题是,如果bar仅仅是一个if,那么roobaf即使foo为true也会到达。

如果我改变barelse if如果当时foo是真,那么bar将不会检查。

如何确定foobar始终被检查,但是roobaf仅当foobar都被检查时才被检查?

roobaf是不是相互排斥的一个条件foo,并bar因此将其第一个将无法正常工作。

nLe*_*Lee 6

您可以执行以下操作:

if (foo || bar) {
    if (foo) {
        // do something
    }
    if (bar) {
        // do something
    }
}
else {
    if (roobaf) {
        // do something else
    }
}
Run Code Online (Sandbox Code Playgroud)