对于循环秒参数混淆

时间:2014-01-28 02:04:02

标签: javascript for-loop boolean

我正在处理来自Code Golf的代码,并且正在压缩一个脚本,该脚本找到两个素数,其总和是用户选择的整数。

a=prompt();function b(n){for(i=2;i<n;i++)if(n%i<1)return;return 1}for(c=2,r=1;c<a&&r;c++)if(b(c)&&b(a-c))alert(a+": "+c+" + "+(a-c)),r=0

我尝试将第一个for循环更改为:

for(i=2;1;i++)

但这破坏了代码。事实证明for(i=2;true;i++)也不起作用。但是i<n会产生true。为什么我可以i<n而不是true

2 个答案:

答案 0 :(得分:4)

你根本不需要任何价值!这将有效,

for(i=2;;i++)

编辑您的断言不正确。当循环必须终止时,表达式i<n会产生错误。

for (i=2;;i++) {
  if (i >= n) break; // <-- Added break, and inverted the test.
  // as before....
}

答案 1 :(得分:0)

i<n小于i时,

n才会生成true。由于您的循环每次循环都会递增ii最终不会小于n,然后循环将停止。