Scala: выполнение операции при переборе элементов в цикле foreach - PullRequest
0 голосов
/ 06 июля 2018

Я очень новичок в scala и пытаюсь выполнить какую-то операцию, используя цикл foreach, но при этом я получаю сообщение об ошибке, поскольку "значение foreach не является членом Int"

Не могли бы вы помочь мне с этой проблемой? Ниже приведен код, также я не собираюсь решать эту проблему с помощью хвостовой рекурсии.

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

    return finalNo
  }

1 Ответ

0 голосов
/ 06 июля 2018
Цикл

foreach работает с коллекциями, а n не является коллекцией. Например, вы можете сделать следующее:

for(no <- List(1, 2, 3)) { println(no) }

В Scala нет цикла for, состоящего из 3 частей (инициализация, условие и приращение).

То, что вы хотите сделать, это итерировать 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 }

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...