Материал предоставлен https://it.rfei.ru

Тест: выражения и блоки

10 лет назад

Здравствуйте! Не могу разобраться с третьим заданием.Изучите следующий фрагмент кода:

var result = ""
var i = 9
while (i > 0) {
  i -= 3
  result += i
}

Чему равно значение result?

10 лет назад

Здравствуйте, Евгений,

Для правильного ответа на задание необходимо обратить внимание на то, что переменная result имеет строковый тип.

Также Вы можете выполнить этот фрагмент в консоли Scala, чтобы подтвердить правильность ответа.

10 лет назад

Здравствуйте! Я выполнил этот фрагмент в консоли Scala и вот что у меня получилось:result:String=”” Scala > i:int=9 , но эти ответы не подходят, может я чего то не понимаю. Прошу разъяснить.

10 лет назад

Добрый день, Евгений Анатольевич.

Тут всё просто “как паяльник”. Если тип result строковый (в результате инициализации пустой строкой), то производится конкатенация строк, а не математическое сложение.

Алгоритм тривиален: сначала производится присоединение символа 6, потом 3, а что получится в результате Вам следует догадаться самостоятельно.

С уважением,
Станислав Лахтин

10 лет назад

спасибо.

9 лет назад

Здравствуйте, Задание 2 не получается.Помогите, пожалуйста.

Какой тип возвращаемого значения имеет методы:

1.def sum(a: Int, b: Int) = a + b

Ответ: Int

2.def sumEven(a: Int, b: Int) = {
  if (a % 2 != 0)
    throw new Exception("Number " + a + " is not even.")
  if (b % 2 != 0)
    throw new Exception("Number " + b + " is not even.")
  a + b
}

Ответ: операция сравнения «не равно != » возвращают Boolean

3.def printSum(a: Int, b: Int) {
  println(sum(a, b))
}

Ответ: Отсутствие знака равенства явно указывает компилятору на тип Unit

4.def printSumEven(a: Int, b: Int) {
  try {
    println(sumEven(a, b))
  } catch {
    case e: Exception =>
      println("The sum is not even.")
  }
}

Ответ: В приведенном примере возвращают тип — Unit.

9 лет назад

Добрый день, Виктор Сергеевич.

Ошибка во втором ответе. Вам здесь не важно, какие операции производятся в методе до его окончания. Там может быть всё что угодно.

Важно то, чем он завершается. Результат последней операции будет сложение двух целочисленных операндов. Их результат не может быть Boolean. Исправьте и будет Вам счастье.

С уважением,
Станислав Лахтин

6 лет назад

Доброго времени суток. Помогите с 5 заданием пожалуйста. parse1 - int, parse2 - int, parse3 - int, parse4 - unit, parse5 - unit,

В чём ошибка? Ну первые три точно должны быть int.

6 лет назад

Здравствуйте, Евгений Александрович!

Вам следует обратить внимание на parse4.

С уважением, Нелли

6 лет назад

Здравствуйте, Нелли. parse4 скомпилируется Nothing?

6 лет назад

Добрый день! Вы забываете про тип any.

Кроме того, задание у Вас также выполнено неверно: корректные реализации метода max - 1, 4, 5.

C уважением, Елизавета

Ваш комментарий

Комментирование доступно только для авторизованных пользователей.

Файлы

Имя файлаРазмер
dokumient_microsoft_word.doc30.2 KB