开始熟悉 R。不明白为什么这个简单的 block 不起作用
特别想用'break'来做
prime.check <- function(num) {
for (del in 2:(num-1)) {
if (num %% del == 0) {
break
}
print(paste(num, 'is not prime'))
}
}
最佳答案
您的函数将在循环中每次都打印
,这并不是真正需要的:您应该完成循环,然后确定要打印的内容。我建议假设它是一个素数,然后如果你break
,然后知道它不是一个素数。
见
prime.check <- function(num) {
isprime <- TRUE
for (del in 2:(num-1)) {
if (num %% del == 0) {
isprime <- FALSE
break
}
}
isnot <- if (isprime) "is" else "is not"
print(paste(num, isnot, "prime"))
invisible(isprime)
}
prime.check(7)
# [1] "7 is prime"
prime.check(6)
# [1] "6 is not prime"
仅供引用,invisible(isprime)
允许您在其他地方使用此函数,例如 if (prime.check(8)) { do_something(); }
,而单独使用 print
则无法做到这一点。完全附属于您的原始请求。
关于r - 检查 R 中的素数,为什么使用 'break' 的这个选项不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/74247921/