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

如何在Java方法中获取Scanner输入的多个数值的最小值?

解决Scanner获取任意数量输入最小值的问题

原代码存在的问题

  • 无意义的比较:input < input永远为false,这个判断完全没用
  • 条件判断错误:if(lessThan = true)是赋值操作,不是判断相等;而且不管if/else分支都给lesser赋值当前输入,等于每次都覆盖之前的值,根本没做最小值比较
  • 初始值不合理:lesser = 0如果用户输入的全是负数,最终结果会错误

修正后的代码

import java.util.Scanner;

public class MinCalculator {
    private static Scanner console = new Scanner(System.in);

    public static void minimum(int count) {
        if (count <= 0) {
            System.out.println("输入数量不能小于等于0");
            return;
        }

        double lesser;
        // 先获取第一个输入作为初始最小值
        System.out.print("Enter a double: ");
        lesser = console.nextDouble();

        // 处理剩余的输入
        for (int i = 1; i < count; i++) {
            System.out.print("Enter a double: ");
            double input = console.nextDouble();
            // 比较当前输入和当前最小值,更小则更新
            if (input < lesser) {
                lesser = input;
            }
        }

        System.out.println("The minimum is " + lesser);
    }

    public static void main(String[] args) {
        // 示例:获取3个输入的最小值
        minimum(3);
    }
}

修正说明

  • 先获取第一个输入值作为初始最小值,避免了固定初始值导致的错误
  • 后续每个输入都和当前最小值比较,只有当输入值更小时才更新最小值
  • 增加了输入数量合法性判断,处理count≤0的情况
  • 去掉了无用的变量和逻辑,代码更简洁清晰

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.12 10:30:57