Javascript while循环计算
如果我是你,我不会运行这个: Javascript: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;
(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是的,我不知道%
是为整数以外的数字定义的。谢谢