<!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
循环只进行了一次就结束了。
添加回答
举报
0/150
提交
取消