我想做的是用一个数学公式替换两个if语句。我不能为我的生活弄清楚如何,因为数学从来都不是我的强项。任何建议都将不胜感激。
<script>
var x, y, z;
x = 200;
y = 100;
i = 0;
while(z != y) {
i++;
if (x < y) z = x + i;
if (x > y) z = x - i;
document.write(z + "<br>");
}
</script>
编辑:真实代码看起来像这样。它不太漂亮,希望我能把它缩小到两行。
if (prevposX < newposX) posX = prevposX + animStep_;
if (prevposX > newposX) posX = prevposX - animStep_;
if (prevposY < newposY) posY = prevposY + animStep_;
if (prevposY > newposY) posY = prevposY - animStep_;
编辑:
已经有一段时间了,但我相信Modulus(%)运营商会帮助我。我现在转移到图书馆为我做图形,所以我最终不需要它。
答案 0 :(得分:4)
您可以使用ternary operator
z = x + ((x<y) ? i : -i)
这假定在x >= y
时您需要-i
。如果你想要完全坚持你的原始你需要第二个三元运算符,这有点乱:
z = x + ((x<y) ? i : ((x>y) ? -i : 0))
坦率地说,将它保留在2行上可能会更清楚,如果你已经拥有2个if语句。