这个do while为什么只循环了一遍

<!DOCTYPE html>

<html>

<head>

    <title>乘法表</title>

    <meta charset="utf-8">

    <script type="text/javascript">

        function multiX(x) {

            var str = "";

            for (var i = 1; i <=9; i++) {

                document.write(x+" * "+i+" = "+x*i+"</br>")

            }

        }

        var number1;

        do{

            number1 = parseFloat(prompt("please input a number",""));

            if (!isNaN(number1)) {

                multiX(number1);

            } else {

                alert("please input a number");

                continue;}

        } while (number1 == -1)

    </script>

</head>

<body>


</body>

</html>


慕哥9229398
浏览 526回答 1
1回答

MMMHUHU

首先,prompt()函数返回值,点取消返回null,点确定返回字符串信息。那么number1可能的值是null或是字符串。然后,parseFloat()的作用是解析一个字符串参数并返回一个浮点数。如果参数字符串的第一个字符不能被解析成为数字,则parseFloat返回NaN.并且当字符串参数为null的时候,返回的也是NaN。那么此时的number1为NaN。接下来的if...else...没有对number1进行任何改变。那么number1依然是NaN。到了判断循环条件,while(number1 == -1)显然是当number1值为-1的时候循环才继续。可见循环条件并不符合,所以do...while循环只进行了一次就结束了。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

JavaScript