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

为何获取的是Integer最大最小值而非用户输入值?

问题分析与解决

问题根源

你的代码有两个关键错误导致输出异常:

  • 初始化逻辑完全搞反:你把highest初始成Integer.MAX_VALUE(Java中int类型的最大值),lowest初始成Integer.MIN_VALUE(int类型的最小值)。这样任何输入的数字都不可能比highest大,也不可能比lowest小,自然不会更新这两个变量。
  • 比较逻辑位置错误:更新最大、最小值的if判断写在循环外面,只会处理最后一次输入的数字,前面4次输入的数值完全没参与比较。

修正后的代码

// 正确初始化:最高值设为int最小值,最低值设为int最大值
int highest = Integer.MIN_VALUE, lowest = Integer.MAX_VALUE, number = 0;
Scanner input = new Scanner(System.in);

for (int j = 0; j < 5; j++) {
    System.out.print("Enter integer " + (j+1) + ": ");
    number = input.nextInt();
    // 每次输入后立即比较更新最大最小值
    if (number > highest) {
        highest = number;
    }
    if (number < lowest) {
        lowest = number;
    }
}

System.out.println("Your highest number is: " + highest);
System.out.println("Your lowest number is: " + lowest);

关键改动说明

  1. 修正初始化:highest初始为Integer.MIN_VALUE,确保任何输入的整数都能比它大;lowest初始为Integer.MAX_VALUE,确保任何输入的整数都能比它小。
  2. 把比较更新的逻辑移到循环内部,每输入一个数字就立刻判断是否需要更新最大或最小值,确保所有输入都参与计算。
  3. 优化提示文本,让用户知道当前输入的是第几个数字,体验更友好。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.22 02:15:00