求助! javascript里面的while语句有问题

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了求助! javascript里面的while语句有问题相关的知识,希望对你有一定的参考价值。

<input type="text" id="text">
<button onclick="fl()">点击</button>
<p id="p"></p>
<script>
function fl()
var ft=document.getElementById("text").value;
var f=0;
while(ft<230)
ft+=2;
f++;

document.getElementById("p").innerhtml="次数是"+f;

这段代码究竟哪里错了? 为什么我允许后 如果我输入值是1 最后得出是次数是3.

var ft=document.getElementById("text").value;

改为
var ft=parseInt(document.getElementById("text").value);

这是因为变量ft从文本框的value属性中获取的是字符串,所以当它和2累加时是按字符串连接来处理的(即1依次变为12、122、1222……),但是,当把它与数字进行比较时(即ft<230)却是按照数值比较来处理的,所以最终的结果为2(因为1222大于230了)。
因此,只要把ft由字符串转为数值,问题就解决了。
参考技术A 你好,
var ft=document.getElementById("text").value;
这样取得的数据默认是字符串型的。那么 ft+=2; 就是字符串的拼接,即ft+=2 为 ft=ft+2=1+2=12;
循环下去就是12222;第三次循环后是1222,比230大,所以是3.
解决方式就是讲ft转换成数字:
ft = parseInt(ft);
最后的代码如下:
function fl()
var ft=document.getElementById("text").value;
ft = parseInt(ft);//转换成整数数字,parseLong(ft)转换成long型。
var f=0;
while(ft<230)
ft += 2;
f++;

document.getElementById("p").innerHTML="次数是"+f;

希望能帮到你。本回答被提问者采纳

JavaScript流程控制语句——循环结构和跳转语句

在现实生活中,经常需要重复且有规律的做一些事。在程序中也经常会出现重复的情况。而在JavaScript中,循环结构有while循环、do-while循环和for循环。

一、while循环语句

语法:

while(条件表达式)

 语句或语句块

 例:(依次输出30以内的奇数)

    <script type="text/javascript">
        var num = 1;
        while (num <= 30) 
            document.write(num + "  ");
            num += 2;//每循环一次加2,等同于num=num+2
        
    </script>

 实现样式:

二、do-while循环语句

语法:

do  

语句或语句块

while( 条件表达式 );

 例:(计算30以内奇数和)

<script type="text/javascript">
        var num = 1;
        var result;//总和
        while (num <= 30) 
            document.write(num + "  ");
            num += 2;
            result += num;//将奇数相加装进result内
        
        document.write("30以内的奇数和为:" + result);
    </script>

实现样式:

三、for循环语句

for( 初始化表达式 ; 循环条件表达式 ; 循环后的操作表达式 )  

语句或语句块

例:(计算330以内的偶数和)对于取余的用法详细请见:JavaScript运算符和注释

 <script type="text/javascript">
        var result = 0;
        for (var num = 1; num <= 30; num++) 
            if (num % 2 == 0) 
                document.write(num + " ");
                result += num;
            
        
        document.write("偶数和为:" + result);
    </script>

实现样式:

 四、break语句和continue语句

        1.JavaScript跳转语句:break语句和continue语句

             break语句用于中断循环

             continue语句用于跳过本次循环要执行的剩余语句,然后开始下一次循环

以上是关于求助! javascript里面的while语句有问题的主要内容,如果未能解决你的问题,请参考以下文章

求助:foreach如何控制循环次数

javascript语句语义大全

小白求助各位大神们 C#while循环的用法

求助python的for循环

JavaScript的循环语句都有哪些?

JavaScript流程控制语句——循环结构和跳转语句