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

Java循环读取整数至输入0停止 排除0计算最小值问题求助

问题根因

你的代码问题出在先执行最小值更新逻辑,再判断是否为终止标识0,导致0被纳入最小值统计,全为正数输入时就会错误返回0。同时原代码存在int num = 0末尾漏写分号、未导入Scanner类的语法问题。

调整后代码
import java.util.Scanner;

public class FindMin {
    public static void main(String[] args) {
        System.out.println("Write a list of integers and type 0 when you are finished");

        int min = Integer.MAX_VALUE;
        int num = 0;
        Scanner in = new Scanner(System.in);

        do {
            // 读取用户输入
            num = in.nextInt();
            // 输入为0直接跳过统计,终止循环
            if (num == 0) {
                break;
            }
            // 仅非0值参与最小值比较
            if (num < min) {
                min = num;
            }
        } while (true);

        // 兼容未输入任何非0值直接输入0的边界场景
        if (min == Integer.MAX_VALUE) {
            System.out.println("未输入有效整数");
        } else {
            System.out.println("The minimum integer is " + min);
        }
        in.close();
    }
}
核心调整点
  • 读取输入后先判断是否为终止标识0,若是直接终止循环,不参与最小值统计
  • 仅非0的输入值才会进入最小值比较逻辑,完全兼容负数的正常统计
  • 补充边界场景处理:如果用户直接输入0,不会返回Integer.MAX_VALUE这类异常值,输出友好提示
  • 补充了Scanner类导入和资源释放逻辑,修复原代码的语法错误
测试验证
  • 输入[-2,10,15,-1,0]:最小值统计为-2,符合预期
  • 输入[6,10,30,0]:最小值统计为6,符合预期

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.07 04:45:03