为什么这个 While 循环没有按预期工作?

Why doesn't this While loop work as intended?

大家好,这里是新手。一个问题,无法理解为什么即使我向变量 num 输入一个大于 9 的 int,while 循环也不起作用,while 循环应该重复自身直到表达式为假,但它没有,甚至没有输出.我在这里错过了什么吗?提前致谢。

fun main () {
    
    while(true) {
    println ("\nWrite a positive number: ")
    var num = readLine()!!.toInt()
    var sum = 0
    if (num > 9) {
        while (num > 9) {
            var digit = num % 10
            sum = sum + digit
            num = num / 10
        }
        println("\nDigit Sum: $sum")

    } else if (num in 1..9) {
        println("\nDigit Sum for the number $num is $num")
    } else {
        println("\nInvalid input, try again.")
    } 

}

}

你不需要每次都重新声明变量

var sum = sum + digit
var num = num / 10

所以只需删除 var

sum = sum + digit
num = num / 10

问题是当最后一个 num 小于或等于 9 时,您没有对它求和。您甚至可以稍微简化您的代码。尝试以下操作:

fun main() {
    while(true) {
        println ("\nWrite a positive number: ")
        val insertedNumber = readLine()!!.toInt()
        var num = insertedNumber
        var sum = 0
        while (num > 9) {
            val digit = num % 10
            sum = sum + digit
            num = num / 10
        }
        sum = sum + num
        println("\nDigit Sum for the number $insertedNumber is $sum")
    }
}