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
相关产品推荐
相关产品推荐

