這里的代碼檢查從 2 到 n 的素數(shù):<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>但是我不明白為什么它適用于數(shù)字 2 并在 n 和 i 都等于 2 時返回 false 而其他素數(shù)不會發(fā)生這種情況。我是 javascript(和一般編程)的新手,根據(jù)我的理解,這段代碼從第一個循環(huán)中的第一次迭代中獲取 i(在“showPrimes”函數(shù)上)并將其作為參數(shù)放在“isPrime”函數(shù)上,并在該函數(shù)成為“if”條件中的“n”,并檢查當(dāng)它從“isPrime”循環(huán)中除以 i 時是否存在余數(shù),因此 (n % i == 0) 應(yīng)該是 (2 % 2 == 0) 在第一次迭代中,是嗎?如果是這樣,為什么它像其他質(zhì)數(shù)一樣工作,這些質(zhì)數(shù)顯然變成假的,不像 (2 % 2 == 0) 這是真的......我在這里缺少什么?對不起,如果這是一個明顯/愚蠢的問題,這是我第一次學(xué)習(xí)與編程相關(guān)的任何東西。
為什么這里的“如果”條件有效?
函數(shù)式編程
2021-06-14 13:09:12