You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Kotlin代码While循环未按预期运行无输出问题求助

问题原因
  • 内层循环逻辑漏洞:当输入值大于9时,你通过逐次取余、除以10的方式计算各位和,但循环终止条件是num > 9,当num被除到只剩个位数时循环直接停止,这最后一位数没有被计入sum变量中。比如输入123,循环结束后num剩余1,sum仅累加了2和3得到错误结果5,正确结果应为6。
  • 语法错误:你贴出的代码外层while(true)没有对应的闭合右大括号,运行时会直接报错,也会导致无输出的问题。
修复后的代码
fun main () {
    while(true) {
        println("\nWrite a positive number: ")
        var num = readLine()!!.toInt()
        var sum = 0
        if (num > 9) {
            var temp = num
            // 循环条件调整为大于0,所有数位都会被计算
            while (temp > 0) {
                var digit = temp % 10
                sum = sum + digit
                temp = temp / 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.")
        } 
    } // 补全外层while循环的闭合括号
}
补充说明
  • 上述代码使用临时变量temp做计算,避免修改原始输入的num变量,方便后续其他逻辑调用原始输入值
  • 如果需要兼容输入为0的合法场景,单独调整判断分支的规则即可

内容的提问来源于stack exchange,提问作者Francisco Engenheiro

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.30 07:18:04