为什么这么写只显示一个值,不显示其他的值呢

来源:4-6 反反复复(while循环)

司禄德

2016-07-10 19:28

		var mychar=prompt("初始值");
		while(mychar<=7)
		{
			document.write(mychar);
			mychar=mychar+1;
		}
	


写回答 关注

3回答

  • Mozitea
    2016-07-10 19:47:55
    已采纳

    因为通过弹框输入的值是字符串,字符串+数字,结果也是字符串,比如你输入1,输出1,最后的值变成了字符串的11,然后字符串和数字比较,先把字符串转换为数字,也就是说原来的字符串“11”变成了数字11,11>7,所以循环不执行。直接就跳出循环了。如果想要输出的话很多数字的话,把mychar=mychar+1; 这一句改成mychar=parseInt(mychar)+1; 就可以了

    Charle... 回复司禄德

    不就应该在最开始就开始解析吗,不然第一次字符串和数字怎么比较?

    2016-07-12 23:26:53

    共 2 条回复 >

  • llo蛋蛋oll
    2016-07-11 09:32:18

    var mychar=prompt("初始值");

    输出mychar

    "7" //mychar为字符串

    mychar <= 7

    true //因为类型转换之后会相等,但是

    mychar + 1

    “71”

    所以只会执行一遍


    司禄德

    谢谢啦~

    2016-07-11 15:17:00

    共 1 条回复 >

  • __0___0__
    2016-07-10 21:16:59

    mychar返回的是一个字符串,就像楼上说的,先使用parseInt()函数解析字符串,并返回一个整数,就可以达到楼主想要的结果了

    司禄德

    谢谢啦~

    2016-07-11 15:16:35

    共 1 条回复 >

JavaScript进阶篇

本课程从如何插入JS代码开始,带您进入网页动态交互世界

468195 学习 · 21891 问题

查看课程

相似问题