2016-02-11 47 views
-1

時,我有,如果在形式多,如果statments不工作

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語句的形式時

如果(真){}

其他{}

GET跳過,直到最後一個相同的形式,如果我有3個第2跳過最後一個運行

+1

你的意思是最後執行'if' 「作品」?他們都「工作」,但是在一個循環中多次設置一個變量的值只會給你在上一輪設置的值。 – Teemu

+0

請解釋你正在嘗試做什麼。在循環之後如何使用'vol'?根據循環過程中的條件結果,執行所有'if..else',將'vol'設置爲'0'或'2'。但是,在循環之後,'vol'的值將僅是最後一次執行的結果。也許你需要一個數組而不是一個變量? – Teemu

回答

2

我認爲你需要使用的& &代替&

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

你可以改變

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) { 

但是這是奇怪的

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