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

Android Studio模拟器数组最值问题:最小值显示异常求助

问题原因

你初始化数组时使用了Array(10) { 0 },这会创建一个包含10个初始值为0的数组。当你只输入数字1时,数组中仅1个元素被替换为1,剩余9个元素仍为初始的0,因此计算最小值时会取到0,而最大值不受影响是因为0小于1。

解决方案

有两种常见的解决方式,按需选择:

方式一:跟踪有效输入数量

  1. 新增变量记录实际输入的数字个数:
val arrX = Array(10) { 0 }
var inputCount = 0 // 记录用户实际输入的数字数量
  1. 用户输入数字时,更新数组并递增计数:
// 假设userInputNumber是用户输入的数字
arrX[inputCount] = userInputNumber
inputCount++
  1. 修改最小最大值计算函数,仅遍历有效输入的元素:
fun getMin(arrX: Array<Int>, count: Int): Int {
    var min = arrX[0]
    for (i in 0 until count) {
        min = min.coerceAtMost(arrX[i])
    }
    return min
}

fun getMax(arrX: Array<Int>, count: Int): Int {
    var max = arrX[0]
    for (i in 0 until count) {
        max = max.coerceAtLeast(arrX[i])
    }
    return max
}
  1. 点击按钮时传入有效计数调用函数:
output.text = "The Min is ${getMin(arrX, inputCount)} and the Max is ${getMax(arrX, inputCount)}"

方式二:使用动态列表存储输入

改用MutableList存储用户输入,避免初始默认值的干扰:

  1. 初始化动态列表:
val inputList = mutableListOf<Int>()
  1. 用户输入时直接添加元素:
inputList.add(userInputNumber) // userInputNumber为用户输入的数字
  1. 直接利用列表内置方法计算最小最大值:
findMinAndMaxButton.setOnClickListener {
    val min = inputList.minOrNull() ?: 0 // 列表为空时可设置默认值
    val max = inputList.maxOrNull() ?: 0
    output.text = "The Min is $min and the Max is $max"
}

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.13 16:25:21