可以在此脚本中使用IF语句而不是WHILE循环吗?

roh*_*ohn 1 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.src.indexOf(myImages[newImgNumber]) != -1)
        {
            newImgNumber = Math.round(Math.random() * 3);
        }

        that.src = myImages[newImgNumber];
        return false;
}
Run Code Online (Sandbox Code Playgroud)

它有一个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>
Run Code Online (Sandbox Code Playgroud)

现在,我的问题是,如果我使用IF语句而不是while循环,显然代码的工作原理相同.在这个特定的例子中,为什么使用while循环而不是IF?谢谢.

Mik*_*uck 6

while陈述基本上翻译为"当我选择的数字与当前图像标签中已有的图像的索引匹配时,继续".因此,虽然if语句可能在大多数情况下都有效,但是0当您单击时,您的随机数生成器可能会连续多次生成该数字img0.while确保最终你会得到一个新的形象.