目前,我在代码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也会到达。
如果我改变bar到else if如果当时foo是真,那么bar将不会检查。
如何确定foo和bar始终被检查,但是roobaf仅当foo和bar都被检查时才被检查?
roobaf是不是相互排斥的一个条件foo,并bar因此将其第一个将无法正常工作。
您可以执行以下操作:
if (foo || bar) {
if (foo) {
// do something
}
if (bar) {
// do something
}
}
else {
if (roobaf) {
// do something else
}
}
Run Code Online (Sandbox Code Playgroud)