Javascript 在这个脚本中可以使用IF语句代替WHILE循环吗?
我在很多书的帮助下学习JavaScript。在其中一个脚本中,我提出了一个脚本,其中显示了几个标志,然后单击它们以随机更改它们:Javascript 在这个脚本中可以使用IF语句代替WHILE循环吗?,javascript,if-statement,while-loop,Javascript,If Statement,While Loop,我在很多书的帮助下学习JavaScript。在其中一个脚本中,我提出了一个脚本,其中显示了几个标志,然后单击它们以随机更改它们: var myImages = new Array("usa.gif","canada.gif","jamaica.gif","mexico.gif"); function changeImg(that) { var newImgNumber = Math.round(Math.random() * 3); while (that.s
var myImages = new Array("usa.gif","canada.gif","jamaica.gif","mexico.gif");
function changeImg(that) {
var newImgNumber = Math.round(Math.random() * 3);
while (that.src.indexOf(myImages[newImgNumber]) != -1)
{
newImgNumber = Math.round(Math.random() * 3);
}
that.src = myImages[newImgNumber];
return false;
}
它有一个while循环,以确保当您单击某个标志时,不会得到相同的标志。
HTML中的其余代码如下所示:
<body>
<img name="img0" src="usa.gif" border="0" onclick="return changeImg(this)" />
<img name="img1" src="mexico.gif" border="0" onclick="return changeImg(this)" />
</body>
现在,我的问题是,如果我使用if语句而不是while循环,显然代码的工作原理是相同的。在这个特定的示例中,为什么使用while循环而不是IF?
谢谢。涉及到一个随机数;你可以连续两次得到相同的随机数
检查一次是不够的–生成的下一个数字可能是相同的。涉及到一个随机数;你可以连续两次得到相同的随机数
检查一次是不够的–生成的下一个数字可能是相同的。while语句基本上翻译为“当我选择的数字与当前图像标记中已经存在的图像索引匹配时,继续”。因此,虽然
if
语句可能在大部分时间都有效,但当您单击img0
时,您的随机数生成器可能会连续多次生成数字0
while
确保最终您将获得一个新图像。while语句基本上翻译为“当我选择的数字与当前图像标记中已有的图像索引匹配时,继续”。因此,虽然if
语句可能在大部分时间都有效,但当您单击img0
时,您的随机数生成器可能会连续多次生成数字0
<编码>而确保最终您将获得一个新图像。否,因为您可以在一行中选择两次相同的图像,因为您使用的是随机数。否,因为您可以在一行中选择两次相同的图像,因为您使用的是随机数。您的目标是进行随机洗牌。试着阅读这个问题的答案:
你的目标是随机洗牌。试着阅读这个问题的答案:
一次重试很可能会再次选择相同的数字,因此
while
循环允许函数不断重复尝试。只有在不期望多个结果时才使用“if”。明白了。谢谢大家的回答!一次重试很可能会再次选择相同的数字,因此while
循环允许函数不断重复尝试。只有在您不希望出现多个结果时才使用“if”。明白了。谢谢大家的回答!OP的目标是理解书中的JS代码,我想?是的,谢谢。显然,我对编码是新手,我只是想通过问“如果我用这个代替那个怎么办”来理解语句背后的逻辑。OP的目标是理解书中的JS代码,我想?是的,谢谢。显然,我对编码是新手,我只是想通过问“如果我用这个而不是那个”来理解语句背后的逻辑。