为了账号安全,请及时绑定邮箱和手机立即绑定

为什么这里的“如果”条件有效?

为什么这里的“如果”条件有效?

函数式编程 2021-06-14 13:09:12
这里的代码检查从 2 到 n 的素数:<script>function showPrimes(n) {  for (let i = 2; i < n; i++) {    if (!isPrime(i)) continue;    alert(i);  // a prime  }}function isPrime(n) {  for (let i = 2; i < n; i++) {    if ( n % i == 0) return false;  }  return true;}</script>但是我不明白为什么它适用于数字 2 并在 n 和 i 都等于 2 时返回 false 而其他素数不会发生这种情况。我是 javascript(和一般编程)的新手,根据我的理解,这段代码从第一个循环中的第一次迭代中获取 i(在“showPrimes”函数上)并将其作为参数放在“isPrime”函数上,并在该函数成为“if”条件中的“n”,并检查当它从“isPrime”循环中除以 i 时是否存在余数,因此 (n % i == 0) 应该是 (2 % 2 == 0) 在第一次迭代中,是吗?如果是这样,为什么它像其他质数一样工作,这些质数显然变成假的,不像 (2 % 2 == 0) 这是真的......我在这里缺少什么?对不起,如果这是一个明显/愚蠢的问题,这是我第一次学习与编程相关的任何东西。
查看完整描述

1 回答

?
小唯快跑啊

TA贡献1863条经验 获得超2个赞

function isPrime(n) {  
    for (let i = 2; i < n; i++) {

当 n=2 时;i=2; 不会进入上面的循环。


查看完整回答
反对 回复 2021-06-18
  • 1 回答
  • 0 关注
  • 134 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信