2017-04-17 37 views
-1

如果有人可以幫我明白爲什麼這個代碼的第一件作品和其他沒有:不能得到這個基本的循環運作

var i = 1; 
while (i <= 20){ 
    if (i & 15 === 0) { 
     console.log("JuliaJames"); 
    } else if (i % 3 === 0) { 
     console.log("Julia"); 
    } else if (i % 5 === 0) { 
     console.log("James"); 
    } else { 
     console.log(i); 
    } 
    i++; 
} 

,這不起作用:

var i = 1; 
while (i <= 20){ 
    if (i % 3 === 0 && i & 5 === 0) { 
     console.log("JuliaJames"); 
    } else if (i % 3 === 0) { 
     console.log("Julia"); 
    } else if (i % 5 === 0) { 
     console.log("James"); 
    } else { 
     console.log(i); 
    } 
    i++; 
} 
+2

可能,兩者都有效,但輸出不同。你期望得到什麼?你是否試圖理解代碼中發生了什麼(對你來說最有趣的部分 - 第一個'if'的條件) – maxkoryukov

+2

'1&5'看起來像你打算修改它。 – corn3lius

+3

我想你的意思是在第二個例子中使用'i%3 === 0 && i%5 === 0'' – naomik

回答

0

將括號中的表達式i%3和i & 5包裹起來,它將按預期工作。

var i = 1; 
while (i <= 20){ 
    if ((i % 3) === 0 && (i & 5) === 0) { 
     console.log("JuliaJames"); 
    } else if (i % 3 === 0) { 
     console.log("Julia"); 
    } else if (i % 5 === 0) { 
     console.log("James"); 
    } else { 
     console.log(i); 
    } 
    i++; 
}