作者BloodyDawn (BloodyDawn)
看板Ajax
标题[问题] a == b == c的判断方式发生奇怪的bug
时间Fri Jan 16 20:53:11 2009
我想用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
1F:推 neversay:因为a==b的回传值就是1呀..... 01/16 21:36
2F:推 SansWord:真的要的话要用 a == b && b == c 01/16 22:30
3F:→ SansWord:最好加个括号~要不然你不知道browser怎麽判别 01/16 22:31
4F:→ BloodyDawn:原来如此,谢谢楼上两位=v= 01/17 15:25