【问题标题】:Print Prime Numbers (2,3,5,7)打印质数 (2,3,5,7)
【发布时间】:2020-09-19 20:36:40
【问题描述】:

我找到了解决这个问题的代码,但我无法弄清楚解决方案的逻辑。

let n = 10;

nextPrime:
for (let i = 2; i <= n; i++) { 
 for (let j = 2; j < i; j++) { 
  if (i % j == 0) continue nextPrime; 
  }
 alert( i ); 
}

我不明白第二个 for 是如何工作的,如果它有一个像第一个一样的增量,那么结果应该是从 2 到 10 的所有数字,因为两个 for 的开头都是相同的数字 (2) 。 . 能否请您解释一下每次迭代,例如为什么不显示 4?

【问题讨论】:

  • 关键在于continue nextPrime 的作用。
  • 能否解释一下每次迭代,比如为什么不显示4?
  • 当i 可被j 整除时,continue nextPrime; 语句退出内循环并继续进行外循环的下一次迭代。

标签: javascript numbers task


【解决方案1】:

当它发现数字不是素数时,它使用标签来打破内部循环。外循环正在迭代数字,内循环检查它是否可以在 2 和数字之间整除。

Label break

【讨论】:

    【解决方案2】:

    continue nextPrime 用于在循环中继续到下一次迭代,而不完成循环内的所有代码。 喜欢:

    data:
    for (let i = 1; i <= 3; i++) { 
      if(i === 2)
          continue data;
     console.log(i)
    }
    

    这里当我达到 I 等于 2 时,代码继续到下一个数字,而不继续到其余代码

    【讨论】:

      猜你喜欢
      • 2012-09-12
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-02-21
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多