我写了一个函数以找到素数,但是它不起作用,因为我无法打破循环
function isPrime(n) {
if (n == 1 ) {
return (`${n} is niether a prime number nor composite number`)
}
else if( n < 1){
return (`${n} is not a prime number`)
}
else{
for (let i = 2; i < n; i++) {
if( n % 2 == 0){
return result = `${n} is not a prime number`
break;
}
else{
return result = `${n} is a prime number`
}
}
}
}
console.log(isPrime(15))
我编写一个函数以找到质子数,但是它无法正常工作,因为我无法打破循环
function isPrime(n) {
if (n == 1 ) {
return (`${n} is niether a prime number nor composite number`)
}
else if( n < 1){
return (`${n} is not a prime number`)
}
else{
for (let i = 2; i < n; i++) {
if( n % 2 == 0){
return result = `${n} is not a prime number`
break;
}
else{
return result = `${n} is a prime number`
}
}
}
}
console.log(isPrime(15))
I write a function to find the prime number , but it's not working because I'm not able to break the loop
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
尽管Dave的答案解决了这个问题,但我建议这样的堆栈溢出答案是更好的选择。
https://stackoverflow.com/a/38643868/10738743
Although answer by Dave addresses the question I would suggest this stack overflow answer as an better alternative.
https://stackoverflow.com/a/38643868/10738743
有两个故障,可以防止您的功能按预期工作。
测试灵巧性的循环是在每次迭代中重复
n%2
,无论循环中i
的值如何,都将评估相同的循环。相反,您应该测试以查看n%i
是正确的。使用该固定的
最终
返回
(仅当所有非挑战条件都被拒绝以较早的return
s拒绝时发生)成为默认返回值。您的代码功能正常,上面建议的次要更改已包含:
There are two glitches preventing your function working as intended.
the loop which tests for primeness is repeating
n%2
on each iteration, which will evaluate the same, regardless of the value ofi
in the loop. Instead, you should be testing to see whethern%i
is true.With that fixed, the final
return
(which only happens if all non-prime conditions have been rejected with earlierreturn
s) should be outside of any block as it becomes the default return value.your code functions fine with the minor changes suggested above incorporated: