簡體   English   中英

JavaScript 循環使用 If 和 Else

[英]JavaScript Loops With If and Else

為什么以下不能准確記錄一個數字是否為素數?

function isPrime2(num) {    
for(let i = 2; i < num; i++) {
if(num % i === 0) {
return console.log(false); break;
} else{return console.log(true)}
}
}

isPrime2(33) 返回真,即使它是一個素數。

如果 i = 2,那么控制台將記錄 true,因為 33/2 = 16.5 但是由於循環沒有結束,下一個 i 值是 i=3,所以控制台不應該記錄 false 然后跳出循環完全,讓最終答案是錯誤的?

這里有兩個問題。

你的邏輯壞了

 function isPrime2(num) { for (let i = 2; i < num; i++) { const remainder = num % i; console.log({ remainder }); if (remainder === 0) { return console.log(false); break; } else { return console.log(true) } } } isPrime2(33);

i2開始。

if(num % i === 0)為假,所以我們將 go 改為else

else{return console.log(true)}導致它記錄為true並退出 function。


當第一個測試失敗時觸發您的失敗條件,而不是等待循環以任何測試的成功條件完成。


33 不是素數

它可以被311整除。

 function isPrime2(num) { for (let i = 2; i < num; i++) { const remainder = num % i; console.log({ remainder }); if (remainder === 0) { return console.log(false); break; } } return console.log(true) } isPrime2(33);

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM