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

Java使用do-while循环求五数的和、均值、最值时的代码问题排查

问题排查与修正方案

嘿,我一眼就看出问题出在哪了,咱们一步步来理清楚:

核心问题分析

  • 最值判断逻辑位置错误:你用来更新max和min的if语句块是在do-while循环结束之后才执行的,这意味着它只会对最后一个输入的数字做判断,前面4个数字完全没参与最值的比较,难怪结果不对!
  • 初始值设置不合理:你把min和max初始化为0,如果输入的数字全是正数,min会一直停留在0;如果全是负数,max也会保持0,这显然不符合咱们要找输入数字里最值的需求。

修正后的代码

import java.util.*;
public class Kleine {
    public static void main(String[] args) {
        Scanner scan = new Scanner(System.in);
        double average;
        int count = 0, sum = 0, num, min, max;
        
        System.out.println("Please enter five numbers to evaluate:");
        // 先读取第一个数字,用它来初始化min和max
        num = scan.nextInt();
        sum += num;
        min = num;
        max = num;
        count = 1;
        
        // 用do-while循环读取剩下的4个数字
        do {
            num = scan.nextInt();
            sum += num;
            // 每次读取新数字后立刻更新最值
            if (num > max) {
                max = num;
            }
            if (num < min) {
                min = num;
            }
            count++;
        } while (count < 5);
        
        average = (double) sum / 5; // 强制转成double避免整数除法截断问题
        
        System.out.println("Your average is: " + average);
        System.out.println("The sum is: " + sum);
        System.out.println("Your maximum number is: " + max);
        System.out.println("Your minimum number is: " + min);
    }
}

关键修改点说明

  1. 调整最值判断位置:把if (num > max)和if (num < min)放到do-while循环内部,这样每输入一个数字,就会立刻和当前的max、min比较并更新,确保所有数字都参与了最值计算。
  2. 合理初始化最值:先读取第一个数字,用它来初始化min和max,这样初始值就是用户实际输入的数字,不会出现0干扰的问题。
  3. 修复整数除法问题:原来的sum / 5是整数除法(因为sum和5都是int),如果sum不是5的倍数,结果会被截断。改成(double) sum /5,先把sum转成double再做除法,能得到精确的小数结果。

测试你之前的输入1 10 5 -3 6,修正后的代码会输出:

Please enter five numbers to evaluate:
1 10 5 -3 6
Your average is: 3.8
The sum is: 19
Your maximum number is: 10
Your minimum number is: -3

这就完全符合预期啦!

内容的提问来源于stack exchange,提问作者Kleine Hansel Buenafe

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.15 04:52:02