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

Kotlin新手编写求N个数最小值程序遇空指针错误求助

解决Kotlin求最小值时的空指针异常问题

嘿,我来帮你排查这个空指针问题~

你的代码里的核心问题是调用min()的时机不对:你在还没往nums列表里添加任何元素的时候,就先执行了val smallestElement = nums.min(),这时候空列表的min()方法会返回null,而你后续添加元素的操作并不会改变已经赋值好的smallestElement(它是不可变的val变量),最后打印这个null的时候自然就触发空指针异常了。

修正后的代码

把获取最小值的步骤放到所有元素添加完成之后就可以解决问题了:

fun main(args: Array<String>) {
    val scanner = Scanner(System.`in`)
    val num1: Int = scanner.nextInt()
    val nums = arrayListOf<Int>()
    
    // 先把所有输入的数字添加到列表里
    repeat(num1) {
        nums.add(scanner.nextInt())
    }
    
    // 现在再去获取最小值
    val smallestElement = nums.min()
    println(smallestElement)
}

额外的严谨性优化

如果担心用户输入的N为0(也就是没有输入任何数字),可以给smallestElement加个空值处理,避免再次出现异常:

val smallestElement = nums.min() ?: error("请输入至少一个数字")
// 或者更友好的提示:
// val smallestElement = nums.min() ?: "没有输入任何数字"

这样调整后,程序就能正常读取输入并输出最小值啦~

内容的提问来源于stack exchange,提问作者Alejandro Diaz

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.08 23:13:12