@hypnogaja

Как вывести 2 значения из функции?

Всем привет, есть функция, которая считает сумму введенных чисел и количество положительных чисел.
Тоесть результатом функции является 2 параметра: sum и pos, которые нужно передать в main функцию.
Как можно это сделать? Я решил объединить их в массив и передать массив данных, но не получается вызвать внутри println по отдельности sum и pos в fun main

fun main() {
    // Рассчет кол-ва положительных чисел и суммы введенных чисел
    print("Введите число N: ")
    val n = readLine()?.toIntOrNull()
        ?.let { n ->
            if (n > 0) {
                println("Количество положительных чисел: ${calcPositiveAndSumByWhile(n)}")
                println("Сумма чисел: ${calcPositiveAndSumByWhile(n)}")
            } else {
                println("Вы ввели не число\n")
            }
        }
        ?: println("Вы ввели не число\n")

    // Рассчет НОД
    print("Введите любое число: ")
    val num = readLine()?.toIntOrNull()
        ?.let { num ->
            if (num > 0) {
                println(calcNOD(num))
            } else {
                println("Вы ввели не число\n")
            }
        }
        ?: println("Вы ввели не число\n")
}


fun calcPositiveAndSumByWhile(n: Int): Array<Int> {
    var pos: Int = 0
    var sum: Int = 0
    var currentNumber: Int = 0
    while (currentNumber < n) {
        print("Введите число $currentNumber: ")
        val m = readLine()?.toIntOrNull()
            ?.let { m ->
                if (m > 0) {
                    pos++
                    sum += m
                    currentNumber++
                } else {
                    sum += m
                    currentNumber++
                }
            }
            ?: println("Вы ввели не число\n")
    }
    return arrayOf(pos, sum)
}
  • Вопрос задан
  • 554 просмотра
Решения вопроса 1
@foonfyrick
Либо класс данных возвращай либо пару значений Pair
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
iLLuzor
@iLLuzor
Java, Kotlin, Android Developer
Нужно создать data класс с двумя свойствами и использовать его вместо массива.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы