即使IF部分是真正的javascript,ELSE也会运行

时间:2017-04-22 03:16:45

标签: javascript if-statement

我做了一些环顾四周,但我无法在Javascript中找到答案。我发现的大多数现有问题都出现在其他语言(Python,C#,SQL等)上,作为初学者,我还不能在语言之间翻译概念。

无论如何,我所拥有的是一个IF..ELSE语句,即使IF部分的计算结果为true,ELSE部分也会一直运行,我认为它应该这样做:

if (condition) {
    block of code to be executed if the condition is true
} else { 
    block of code to be executed if the condition is false
}

这是我的代码:

for(var key in Characters) {

    if (Characters[key][matchArr[0]] > 1 && Characters[key][matchArr[1]] > 1 && 
    Characters[key][matchArr[2]] > 1 && Characters[key][matchArr[3]] > 1 && 
    Characters[key][matchArr[4]] > 1) {

    console.log("if...stuff!")
    break; 

    } else {
    console.log("Else Stuff");
    }
}

我可以通过在控制台中单独运行它并检查输出(这是真的)来验证我的第一个条件是否为真。如果在没有ELSE部分的情况下运行,我会得到预期结果"if...stuff!"。如果使用ELSE部分运行,我会同时使用。

这似乎与我的情况有关,而不是循环的编写方式或我记录的内容。如果我写这样的话,IF..ELSE语句就像我期望的那样起作用。

for(var key in Characters) {
    x = true;
    if (x === true) {
        console.log("if stuff");
        break;
    } else {
        console.log("else stuff");
        break;
    }
}

我评估为true的预期条件有什么不对,但在IF...ELSE声明中,它仍会运行ELSE部分。

Characters[key][matchArr[0]] > 1 && Characters[key][matchArr[1]] > 1 &&
Characters[key][matchArr[2]] > 1 && Characters[key][matchArr[3]] > 1 && 
Characters[key][matchArr[4]] > 1

0 个答案:

没有答案