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

使用while循环生成重复数字序列,排查Kotlin代码输出异常问题

代码问题排查

存在以下核心错误:

  • 起始值设置错误:i初始值为0,导致输出从0开始,和要求的序列起始值1不符
  • 内层循环计数未重置:变量j仅初始化了1次,第一次内层循环结束后j的值会大于后续的i,导致每个数字只能打印1次,无法实现数字n重复n次的逻辑
  • 终止条件错误:循环没有以已打印的元素数量作为终止判断依据,会出现打印数量超出输入值的问题
  • 输出格式问题:直接拼接空格打印,会导致末尾出现多余空格
修复后代码
fun main() {
    val input = readLine()!!.toInt()
    var printedCount = 0
    var currentNum = 1
    while (printedCount < input) {
        var repeatCount = 0
        while (repeatCount < currentNum && printedCount < input) {
            print(currentNum)
            printedCount++
            repeatCount++
            if (printedCount < input) {
                print(" ")
            }
        }
        currentNum++
    }
}
修改说明
  1. 将当前打印的数字初始值设置为1,匹配序列起始要求
  2. 每次外层循环重置重复次数计数器repeatCount,保证每个数字可以打印对应次数
  3. 两层循环都增加已打印数量的判断,达到输入值时立刻终止,不会出现多打漏打的问题
  4. 增加空格打印的判断条件,仅在未打印到最后一个元素时输出空格,避免末尾多余空格

内容的提问来源于stack exchange,提问作者Dede Kurniawan

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.28 08:39:03