【发布时间】:2016-08-21 07:05:33
【问题描述】:
我想检查一个数字是否是素数。我写了以下代码,但它没有返回任何值:
def isprime(x:Int) = {
| if (x==1) false
| else {
| for (i <- 2 to x-1) {
| if (x % i == 0) false
| else true
| }
| }
| }
【问题讨论】:
-
你在哪里运行它?你是如何运行它的?
-
我正在使用 Scala REPL
-
@AlirezaIzadimehr 我阅读了那个链接,但我需要使用简单的 if-else 语句来完成它
-
我认为答案虽然没有错,但并没有真正解决问题。 Amab,问题在于您的 for 循环没有产生任何值 - 您计算了一个真/假值,但随后不做任何事情。所以你的 else 子句不会产生任何值(事实上,它会产生
Unit)。一旦找到除数,您就需要返回 false - 这样做的方法可能是 @eliasah 的答案中的exists。
标签: scala