我是scala的初学者,我正在尝试使用foreach循环进行一些操作,但是在执行此操作时,由于“ value foreach不是Int的成员”而收到了错误提示
您能帮我解决问题吗?。下面是代码,我也不想使用尾递归来解决这个问题。
def findTheFactorial(n : Int): Int = {
var finalNo = 1
for(no <- n)
finalNo = finalNo * no
return finalNo
}
答案 0 :(得分:1)
foreach循环适用于集合,而n
不是集合。例如,您可以执行以下操作:
for(no <- List(1, 2, 3)) {
println(no)
}
Scala没有包含3个部分(初始化,条件和增量)的for循环。
您要迭代n次。为此,您可以创建一个Range
,它是如下所示的集合:
1 to n
上面的代码生成一个介于1和n
之间的范围,当您对该范围进行迭代时,便会得到所需的结果。因此,您的代码应如下所示:
def findTheFactorial(n : Int): Int = {
var finalNo = 1
for(no <- (1 to n))
finalNo = finalNo * no
return finalNo
}