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

如何无需询问输入数量,实现输入到42即停止的Java键盘输入

解决无需预先指定输入数量、读到42即停止的Java实现

嘿,我来帮你搞定这个问题!你现在的代码需要先询问用户输入数量,但其实我们可以通过循环持续读取输入的方式,完全不用提前确定输入个数,只要读到42就立刻停止处理。

完整代码示例

import java.util.Scanner;
import java.util.ArrayList;

public class antarahac {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        ArrayList<Integer> inputNumbers = new ArrayList<>(); // 用动态集合存输入,不用固定数组长度

        System.out.println("请输入整数,输入42时停止:");
        while (sc.hasNextInt()) { // 自动检查是否还有整数输入
            int num = sc.nextInt();
            if (num == 42) {
                break; // 读到42就跳出循环,停止处理
            }
            inputNumbers.add(num); // 把非42的数字存起来(如果需要后续处理的话)
            System.out.println("已读取并处理数字:" + num); // 示例处理逻辑:打印读取的数字
        }

        // 可添加对存储数字的后续操作
        System.out.println("停止输入,已读取的有效数字列表:" + inputNumbers);
        sc.close();
    }
}

关键逻辑说明

  • 摆脱固定输入数量限制:用while(sc.hasNextInt())作为循环条件,它会自动检测控制台是否还有整数输入,用户可以一直输入直到敲入42,也可以通过快捷键手动结束输入(Windows按Ctrl+Z,Mac/Linux按Ctrl+D)。
  • 动态存储输入:用ArrayList<Integer>替代固定长度数组,它可以自动扩容,完全不用提前预估输入个数。如果你的需求只是读取后立刻处理(比如打印),甚至可以省略集合,直接在循环内完成操作。
  • 终止逻辑清晰:每次读取整数后判断是否等于42,满足条件就用break跳出循环,直接停止后续输入处理。

简化版(无需存储输入的场景)

如果你的需求只是读取输入直到42,不需要保存之前的数字,可以简化成这样:

import java.util.Scanner;

public class antarahac {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        System.out.println("请输入整数,输入42时停止:");
        
        while (true) {
            int num = sc.nextInt();
            if (num == 42) {
                System.out.println("已读取到42,停止处理");
                break;
            }
            // 这里写你的自定义处理逻辑,比如计算、打印等
            System.out.println("正在处理数字:" + num);
        }
        sc.close();
    }
}

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.27 04:08:25