Не могу разобраться с Null, как проверить что я ввел в консоль отрицательное число?

Не могу разобраться с Null, как проверить что я ввел в консоль отрицательное число ? Вообще необходимо посчитать сумму положительных чисел, я новичок в программировании с нуля, и в проверке null не могу разобраться.

fun main() {
    println("Введите желаемое количество чисел: ")
    val number: Int? = readLine()?.toIntOrNull()
    val zero = 0
    if (number!=null) {
        println("Вы ввели число $number")
    }
    if (number < zero) {
        println("Вы ввели отрицательное число")
    }
    if (number==null) {
        println("Вы ввели не число")
    }
}

Ответы (4 шт):

Автор решения: Eugene Krivenja

Вы же на Котлине пишете, компактнее надо и меньше if-ов.

number?.also {
    println("Вы ввели число $it")
    if (it < zero) {
        println("Вы ввели отрицательное число")
    } else {
        // тут считаем положительные
    }
} ?: println("Вы ввели не число")
→ Ссылка
Автор решения: Alexey

Рабочий код, может кто подскажет где разжеван синтаксис (видимо это моя проблема)... я новичок, ведущего который дает волшебный пендель и направляет на путь истинный нет =)

fun main() {
    println("Введите желаемое количество чисел: ")
    val number: Int? = readLine()?.toIntOrNull()
    val zero:Int = 0
    number?.also {
        println("Вы ввели число $it")
        if (it < zero) {
            println("Вы ввели отрицательное число")
        } else {
            println("Вы ввели положительное число")
        }
    } ?: println("Вы ввели не число")}
→ Ссылка
Автор решения: Эникейщик

В исходном коде достаточно вторую проверку внести внутрь первой, тогда все будет работать

fun main() {
    println("Введите желаемое количество чисел: ")
    val number: Int? = readLine()?.toIntOrNull()
    val zero = 0
    if (number != null) {
        println("Вы ввели число $number")
        if (number < zero) {
            println("Вы ввели отрицательное число")
        }
    }
    else {
        println("Вы ввели не число")
    }
}
→ Ссылка
Автор решения: Alexey

Может новичкам пригодиться... Я его победил =) Мой рабочий код... По условию задачи необходимо:

  1. Ввести число с клавиатуры в консоль.
  2. Введите следующие числа, каждое с новой строки. Используйте для этого цикл. Начните итерацию цикла заново, если пользователь ввёл не число. Используйте для этого нуллабельные типы и elvis-operator.
  3. Выведите в консоль количество введённых положительных чисел по окончании ввода чисел. Используйте if, чтобы проверить, что число положительное. Посчитайте сумму введённых чисел.
fun main () {
    print("Введите количество вводимых в консоль чисел: ")
    val number = inputNumbers()
    println("Желаемое количество чисел для ввода = $number")
    var mainNum = 0
    var sumAllNum = 0
    var sumPosNum = 0
    var sumAllPosNun = 0
    while (mainNum < number){
        println("Введите число: ")
        val numberString = readLine()?.toIntOrNull() ?: continue
        mainNum++
        sumAllNum += numberString
        if (numberString > 0) {
            sumPosNum++
            if (numberString > 0)
                sumAllPosNun += numberString
        }
    }
    println("Количество вводов чисел = $number ")
    println("Сумма всех чисел = $sumAllNum")
    println("Количество положительных чисел = $sumPosNum")
    println("Сумма положительных чисел = $sumAllPosNun")
    }

fun inputNumbers (): Int {
    return readLine()?.toIntOrNull() ?: inputNumbers()
}
→ Ссылка