JavaScript while循环计算

标签 javascript while-loop infinite-loop

如果我是你,我就不会运行这个:

Javascript:

(function() {
    var a = 1, 
        b = a, 
        c = b,
        d = 1,
        e = 1;

    while ( d != 0 && e != 0) {
        b = Math.sqrt(a*a+a*a);
        c = 2*a-b;

        e = b%1;
        f = c%1;

        document.write(a);

        a++;
    } 

    document.write('a = ' + a);
    document.write('b = ' + b);
    document.write('c = ' + c); 

})();​

是的,基本上我想一遍又一遍地计算相同的方程,直到所有三个都是 JavaScript 的整数,然后将它们打印出来。请注意,直到最近我才使用 jQuery。

这似乎只是无限重复,尽管我觉得很奇怪,它在计算时不打印 a,不确定 JavaScript while 循环是否是这样工作的。

另外,为什么我不能使用 Math.sqrt(2a^2) 来计算 B?

最佳答案

它永远不会结束,因为d永远不会等于0。您将其初始化为1并且永远不会重新分配它。您还使用了未声明的变量f。这应该是d吗?

我还建议使用 console.log 而不是 document.write。它比 DOM 刷新更频繁,并且通常具有更好的日志记录功能。查看 WebKit Inspector(Safari 和 Chrome)、Firebug (Firefox) 或 F12 开发人员工具 (IE)。

作为 PaulP.R.O.指出,您所需的求幂语法是无效的 JavaScript 语法。如果你愿意,你可以这样写:

b = Math.sqrt(2 * Math.pow(a, 2));

关于JavaScript while循环计算,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9578092/

相关文章:

javascript - NodeJS 中的异步与同步

javascript - 向下滚动时如何卡住表头及其上方的所有内容?

Java while循环不会中断

c++ - Cin 在一个 while 循环中

swift - 单击自定义单元格的 UITextField 后重新加载 TableView

php,while()循环中的无限循环

javascript - JS 认为函数未定义,即使它明显存在

javascript - 通过名称和值使用 json 数据填充表单

shell - 使用条件分隔和计算列表中的元素数量

ios - 在 Swift 中使用 UIScrollView 无限循环滚动