這里的代碼檢查從 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) 這是真的......我在這里缺少什么?對不起,如果這是一個明顯/愚蠢的問題,這是我第一次學習與編程相關的任何東西。
為什么這里的“如果”條件有效?
函數式編程
2021-06-14 13:09:12