[問題] a == b == c的判斷方式發生奇怪的bug

看板Ajax作者 (BloodyDawn)時間16年前 (2009/01/16 20:53), 編輯推噓2(202)
留言4則, 3人參與, 最新討論串1/2 (看更多)
我想用JavaScript寫一個吃角子老虎的小遊戲 但現在發生了很奇怪的bug 我用a == b == c這種方式來判斷這三個變數是不是一樣 但結果很神奇! a和b變數要一樣沒問題 但是c變數一定要等於1才會執行if裡面的程式碼 我也追踪過變數的判斷 確定是c變數為1前面兩個變數一樣就算bingo 我又自己寫一個新檔來試a == b == c 明明就沒問題 以下附上程式碼: <script type="text/javascript"> <!-- num1 = Math.round (Math.random () * 2 + 1); num2 = Math.round (Math.random () * 2 + 1); num3 = Math.round (Math.random () * 2 + 1); function run () { document.getElementById('first').innerHTML = num1; document.getElementById('second').innerHTML = num2; document.getElementById('third').innerHTML = num3; if (num1 == 3) { oldnum1 = num1; num1 = Math.round (Math.random () * 2 + 1); } else { oldnum1 = num1; num1++; } if (num2 == 3) { oldnum2 = num2; num2 = Math.round (Math.random () * 2 + 1); } else { oldnum2 = num2; num2++; } if (num3 == 3) { oldnum3 = num3; num3 = Math.round (Math.random () * 2 + 1); } else { oldnum3 = num3; num3++; } renew = setTimeout ('run ()', 50); } function stop () { clearTimeout(renew); if (oldnum1 == oldnum2 == oldnum3) { alert ("BINGO!"); } } //--> </script> -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 220.132.8.137

01/16 21:36, , 1F
因為a==b的回傳值就是1呀.....
01/16 21:36, 1F

01/16 22:30, , 2F
真的要的話要用 a == b && b == c
01/16 22:30, 2F

01/16 22:31, , 3F
最好加個括號~要不然你不知道browser怎麼判別
01/16 22:31, 3F

01/17 15:25, , 4F
原來如此,謝謝樓上兩位=v=
01/17 15:25, 4F
文章代碼(AID): #19S8Cu26 (Ajax)
文章代碼(AID): #19S8Cu26 (Ajax)