为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

慕哥9229398 2018-11-13 13:14:57
<!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 回答

?
MMMHUHU

TA贡献1834条经验 获得超8个赞

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

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

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


查看完整回答
反对 回复 2018-12-14
  • 1 回答
  • 0 关注
  • 525 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信