Javascript 多个if stations不工作

Javascript 多个if stations不工作,javascript,if-statement,Javascript,If Statement,当我在表格中有if语句时 for (var i = 0; i < b;i++) { if (((x + 10) > tail[i].x & (x + 10) < tail[i].x + 10) & angle == 0) { vol = 0; } else { vol = 2 } } 只有最后一个if语句有效 我按照建议将&更改为&&但是我仍然得到了奇怪的bug,除了表单中的最后一个if语句 for

当我在表格中有if语句时

for (var i = 0; i < b;i++) {

    if (((x + 10) > tail[i].x & (x + 10) < tail[i].x + 10) & angle == 0) {
        vol = 0;
    } else {
         vol = 2
    }
}
只有最后一个if语句有效

我按照建议将&更改为&&但是我仍然得到了奇怪的bug,除了表单中的最后一个if语句

for (var i = 0; i < b;i++) {

    if (((x + 10) > tail[i].x & (x + 10) < tail[i].x + 10) & angle == 0) {
        vol = 0;
    } else {
         vol = 2
    }
}
iftrue{}

else{}


以相同的形式跳过最后一个,如果我有3个,则跳过前2个,最后一个运行

我认为您需要使用&&而不是&

if(((x+10)>tail[i].x && (x+10)<tail[i].x+10) && angle==0)
    {
        vol=0;
    }
    else
    {
        vol=2;
    }
&表示按位和

&&表示逻辑与

查看此

您可以更改

if (((x + 10) > tail[i].x & (x + 10) < tail[i].x + 10) & angle == 0) {

但这很奇怪

if (x + 10 > tail[i].x && x + 10 < tail[i].x + 10 && angle == 0) {
//                          ^^^^ together w/ ^^^^

你是说最后一次执行如果有效?它们都是有效的,但是在循环中多次设置变量的值只会得到上一轮设置的值。请解释您试图做什么。循环后如何使用vol?执行所有if..else,并根据循环期间的条件结果将vol设置为0或2。但是,在循环之后,vol的值将仅是最后一次执行的结果。也许你需要一个数组而不是一个变量?