Scala:在foreach循环中迭代项目时执行操作

时间:2018-07-06 02:36:14

标签: scala foreach

我是scala的初学者,我正在尝试使用foreach循环进行一些操作,但是在执行此操作时,由于“ value foreach不是Int的成员”而收到了错误提示

您能帮我解决问题吗?。下面是代码,我也不想使用尾递归来解决这个问题。

  def findTheFactorial(n : Int): Int = {
    var finalNo = 1
    for(no <- n)
      finalNo = finalNo * no

    return finalNo
  }

1 个答案:

答案 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 }