使用If和Else的JavaScript循环

使用If和Else的JavaScript循环,javascript,function,loops,if-statement,Javascript,Function,Loops,If Statement,为什么下面不能准确记录一个数是否为素数 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(num){ for(设i=2;i

为什么下面不能准确记录一个数是否为素数

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(num){
for(设i=2;i
isPrime2(33)返回true,即使它是一个素数

如果i=2,那么控制台将记录为true,因为33/2=16.5 但是由于循环没有结束,下一个i值是i=3,
那么,控制台不应该记录为false,然后完全脱离循环,让最终答案为false吗

这里有两个问题

你的逻辑被打破了
函数isPrime2(num){
for(设i=2;iisPrime2(33)
33不是质数。
返回控制台。log(false)
不是返回
false
的方法。您应该:
console.log(false);返回false。无需
中断
,因为
返回false
将具有相同的效果。与
返回控制台.log(true)
相同。尝试
console.log(true);返回true