Javascript while循环计算

Javascript while循环计算,javascript,while-loop,infinite-loop,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;

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

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?

Math.sqrt(2a^2)
不起作用,因为:

1) 当您想使用
*
乘法时,必须在Javascript中显式显示。2a并不意味着
2*a

2) 在Javascript中的含义与求幂不同。这意味着

这两种情况在许多其他编程语言中也是如此
Math.sqrt(2*a*a)
适合您

由于
d!=0
始终为真,因为您从未从其原始值1修改
d

我不确定你想用
b%1
c%
做什么,但是任何整数
mod 1
都会给你0

不会向屏幕写入任何内容,因为循环从未停止执行,因此不会给web浏览器提供渲染任何内容的机会。

Math.sqrt(2a^2)
不起作用,因为:

1) 当您想使用
*
乘法时,必须在Javascript中显式显示。2a并不意味着
2*a

2) 在Javascript中的含义与求幂不同。这意味着

这两种情况在许多其他编程语言中也是如此
Math.sqrt(2*a*a)
适合您

由于
d!=0
始终为真,因为您从未从其原始值1修改
d

我不确定你想用
b%1
c%
做什么,但是任何整数
mod 1
都会给你0


不会向屏幕写入任何内容,因为循环从未停止执行,因此不会给web浏览器提供渲染任何内容的机会。

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

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

作为保罗,R.O。指出,您需要的求幂语法是无效的JavaScript语法。如果你想,你可以这样写:

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

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

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

作为保罗,R.O。指出,您需要的求幂语法是无效的JavaScript语法。如果你想,你可以这样写:

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

“mod 1将为您提供0的任何内容”不正确:
1.1%1
不是零。@muistooshort是的,我不知道
%
是为整数以外的数字定义的。谢谢。“mod 1会给你0的任何东西”都不正确:
1.1%1
不是零。@muistooshort是的,我不知道
%
是为整数以外的数字定义的。谢谢