javascript - 这个do while为什么只循环了一遍
阿神
阿神 2017-05-18 10:58:48
[JavaScript讨论组]
<!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>
阿神
阿神

闭关修行中......

全部回复(1)
習慣沉默

首先,prompt()函数返回值,点取消返回null,点确定返回字符串信息。那么number1可能的值是null或是字符串。
然后,parseFloat()的作用是解析一个字符串参数并返回一个浮点数。

如果参数字符串的第一个字符不能被解析成为数字,则parseFloat返回NaN.
并且当字符串参数为null的时候,返回的也是NaN。那么此时的number1为NaN。

接下来的if...else...没有对number1进行任何改变。那么number1依然是NaN。
到了判断循环条件,while(number1 == -1)显然是当number1值为-1的时候循环才继续。
可见循环条件并不符合,所以do...while循环只进行了一次就结束了。

热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 意见反馈 讲师合作 广告合作 最新更新 English
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号