首页 > 解决方案 > 当内部 if 条件失败时转到外部 else 语句

问题描述

假设我有:

const apple = 1;
const banna = "apple";

if (apple === 1 || banana === "apple") {
    if (banana === "orange") {
        console.log("Yes it is orange");
    }
    else {
        break;
    }
}
else {
    console.log("No not orange");
}

在提供的示例中,我想在第一个else嵌套失败时执行外部条件。在这里,我使用的示例很简单,在我的用例中则完全不同。ifif

让我知道是否有人需要任何进一步的信息。

标签: javascript

解决方案


你不能breakelse不。你必须重新制定你的条件。您所写内容的逻辑重新表述很简单:

if (apple === 1 && banana === "orange") {
    console.log('Yes it is orange')
} else {
    console.log("No not orange")
}

...因为不可能同时banana成为两者"orange""apple"但当然你的例子只是一个例子。如果有更多条件,您可以使用else if

if (x || y) {
    // `x` or `y` was true (`z` may or may not also be true)
} else if (z) {
    // `z` is true and `x` and `y` were not true
} else {
    // None of them was true
}

或者

if (z) {
    // `z` is true (`x` or `y` may also be true)
} else if (x || y) {
    // `x` or `y` was true (`z` was not true)
} else {
    // None of them was true
}

(我在上面的逻辑意义上使用了“true”,而不是严格的 JavaScript 布尔意义。JavaScript 中的条件使用真与假,而不是严格的真/假。if (1)将进入if正文,因为1是一个真值;if (0)不会进入if正文,因为0是一个虚假值。虚假值是0, "", NaN, null, undefined, false[当然],并且在浏览器上document.all[奇怪但真实];所有其他值都是真实的。)


推荐阅读