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

Java温度统计程序输出初始最小值而非更新后最大值问题排查

Java温度统计代码问题排查及修复

错误原因

  • 核心逻辑赋值颠倒:当判断当前输入温度temp大于已记录的最高温maxtemp时,代码写为temp = maxtemp,是把初始值-1000的最高温赋值给了输入的临时温度变量,maxtemp本身从未被更新,因此始终保留初始值。
  • 次要优化点:Scanner对象在循环内重复创建,属于不必要的资源开销,且原输出语句中at后缺少空格,会导致最终输出的时间和文字连在一起。

修复后完整代码

package javaPracticeNotes;

import java.util.Scanner;

public class Lab3_7 {
    public static void main(String[] args) {
        int temp;
        int maxtemp = -1000;
        int timeAtMax = 0;
        int hour;
        // Scanner移到循环外,只创建一次
        Scanner scan = new Scanner(System.in);

        for (hour = 1; hour <= 5; hour++) {
            System.out.println("Enter the temperature at " + hour);
            temp = scan.nextInt();
            if (maxtemp < temp) {
                // 修正赋值顺序,把当前更高的温度赋值给maxtemp
                maxtemp = temp;
                timeAtMax = hour;
            }
        }
        scan.close();
        // 补充at后的空格,优化输出格式
        System.out.println("The max temperature of the day was " + maxtemp + " at " + timeAtMax);
    }
}

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.26 22:06:01