Javascript 如果语句中包含3个或更多条件,则为Else if?
我已经试了很长一段时间了,似乎无法找出我做错了什么。第一个条件似乎也起作用,但第三个条件不起作用Javascript 如果语句中包含3个或更多条件,则为Else if?,javascript,html,three.js,Javascript,Html,Three.js,我已经试了很长一段时间了,似乎无法找出我做错了什么。第一个条件似乎也起作用,但第三个条件不起作用 function spriteAI1() { if (c2Sprite.position.x >= 30 && c2Sprite.position.x <= 450) { c2Sprite.translateX( -10 ); } else if (c2Sprite.pos
function spriteAI1() {
if (c2Sprite.position.x >= 30 && c2Sprite.position.x <= 450) {
c2Sprite.translateX( -10 );
} else if (c2Sprite.position.x <= 30 && c2Sprite.position.x >= -450) {
c2Sprite.translateX( 10 );
} else if (c2Sprite.position.z = 30 && c2Sprite.position.x = 30) {
c2Sprite.remove;
c2Sprite.clone;
}
else{}
}
function spriteAI2() {
if (c2Sprite.position.z >= 30 && c2Sprite.position.z <= 350) {
c2Sprite.translateZ( -10 );
} else if (c2Sprite.position.z <= -30 && c2Sprite.position.z >= -350) {
c2Sprite.translateZ( 10 );
} else if (c2Sprite.position.x = 30 && c2Sprite.position.z = 30) {
c2Sprite.remove;
c2Sprite.clone;
}
else{}
}
错误为
分配中的左手无效
。但另一个函数的行基本相同,不会产生错误 我发现您的代码中有两个问题
首先,比较是使用==
(双等号),而不是单个等号(即赋值)。这可能是你问题的根源
第二,最后两个条件匹配一组公共值(它们是相交的),如果c2Sprite.position.x
等于30,它将进入第二个“if”。它将匹配第三个的条件,但不会运行它
确保始终定义分离良好的条件组(除非这是您想要的行为)
我只想说清楚:
if (x >= 30) {
/* this matches 30 and above */
}
else if (x == 30) {
/* this won't execute on x == 30, because it entered the first "if" */
}
你应该这样做:
if (x > 30) {
/* this matches numbers strictly greater than 30, i.e. 31, 32, 33... */
}
else if (x == 30) {
/* this will match x == 30 */
}
else {
/* any other value for x */
}
您想要
=
(比较)而不是=
(赋值,也是有效的表达式)这是运行时异常还是语法错误?@Bergi感谢您的帮助。这纠正了我的错误。在重新编写代码并添加console.log之后,我可以看到位置x和z都达到了30,但最后一个条件仍然没有触发。你知道为什么吗?我不知道是运行时还是语法对不起。太棒了,谢谢你的帮助。我已经重新编写了代码,但仍然无法让它触发第三个条件。我会这样做:if(c2Sprite.position.z>30&&c2Sprite.position.z=-350){/*…*/}否则如果(c2Sprite.position.x==30&&c2Sprite.position.z==30){/*…*/}我不确定你说的是什么意思。对不起,我不熟悉使用表单。有什么东西我没看到。对不起,我误按了介绍键。现在看看。顺便说一句,第一个函数也有同样的问题,在前两个条件中执行严格的x>30
和x<30
,否则第三个函数将永远不会执行。谢谢。摆脱最后一个问题解决了。日志现在显示缩进消息。它仍然没有删除精灵,但我想我一定是使用了错误的three.js命令或其他东西。再次感谢你的帮助,use==not=这东西快把我累死了。你是个救命恩人。
if (x > 30) {
/* this matches numbers strictly greater than 30, i.e. 31, 32, 33... */
}
else if (x == 30) {
/* this will match x == 30 */
}
else {
/* any other value for x */
}