“我有这个函数。”
function getDirections(dir)
{
var img;
switch(dir)
{
case 0:
img+='N.png';
break;
case 1:
img+='NE.png';
break;
case 2:
img+='E.png';
break;
case 3:
img+='SE.png';
break;
case 4:
img+='S.png';
break;
case 5:
img+='SO.png';
break;
case 6:
img+='O.png';
break;
case 7:
img+='NO.png';
break;
default:
alert('enetered default but direction='+dir);
}
return img;
}
相当简单对吧?现在我将这个间隔设置为5000毫秒来调用getDirections(variable)函数,第一次调用该函数时它运行得很好,但之后,它总是进入默认情况,并且还会弹出“已输入默认,但direction=dirvalue”的警报,我的意思是,即使dir是0-7之间的值,它也总是进入default:,但它会发出值警报,因此它应该进入其中一个case中。我使用else if创造了相同的东西,它可以工作,所以我不知道SWITCH哪里出了问题。
if(dir==0){img+='N.png';}
else if(dir==1){img+='NE.png';}
else if(dir==2){img+='E.png';}
else if(dir==3){img+='SE.png';}
else if(dir==4){img+='S.png';}
else if(dir==5){img+='SO.png';}
else if(dir==6){img+='O.png';}
else if(dir==7){img+='NO.png';}
dir
,您是否会得到预期的结果? - alexvar img="";
因为它会尝试将两个操作数附加到一个字符串上,而由于你没有初始化img,它只变成了“未定义”。 :) - Gordon Gustafsonswitch...case
使用严格比较,你正在将一个字符串与整数进行比较。 - Blazemonger