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

Java实现输入5个整数功能时循环仅执行一次问题求助

问题原因
  • 缺少控制5次输入的外层循环:你代码中原本写的while (counter<5);不仅被注释,即使取消注释,末尾多余的分号也会让它变成无逻辑的空循环,无法包裹输入流程。
  • 现有代码结构下,输入校验的do-while仅会执行1次,counter仅自增1次后程序就直接结束,自然无法完成5次输入需求。
  • 额外问题:你定义的data数组没有对合法输入做赋值操作,收集到的整数无法存储。
修正后代码
package com.company;

import java.util.Scanner;

public class Main {

    public static void main(String[] args) {

        Scanner s= new Scanner(System.in);

        int counter= 0;
        Boolean inputOK;
        int iInput;

        int data[]= new int[5];

        // 新增外层循环,控制输入5次
        while (counter < 5) {
            do {
                System.out.println("请输入一个整数");
                // 校验是否为整数
                while (!s.hasNextInt()) {
                    System.out.println("输入无效");
                    System.out.println("请输入整数值");
                    s.next();
                }

                iInput = s.nextInt();
                // 校验整数范围
                if (iInput < -10 || iInput > 10) {
                    System.out.println("整数不合法,请输入-10到10之间的整数");
                    inputOK = false;
                } else {
                    inputOK = true;
                }
            } while (!inputOK);
            // 合法输入存入数组
            data[counter] = iInput;
            counter++;
            System.out.println("当前计数为:" + counter);
        }
        // 可选:输出所有收集到的整数验证结果
        System.out.println("收集到的5个整数为:");
        for (int num : data) {
            System.out.print(num + " ");
        }
    }
}
修正说明
  • 新增外层while (counter < 5)循环,包裹全部输入、校验、计数逻辑,保证刚好执行5次有效输入
  • 合法输入成功后自动存入data数组对应下标位置
  • 保留原有非整数校验、数值范围校验的逻辑不变
  • 补充了最终结果输出逻辑,方便验证输入是否正确

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.29 04:06:04