Java程序问题:如何修改代码实现输入值校验并输出合规数值?
代码修改方案
先看你原代码里的几个致命问题:
- 循环里没更新输入值,一旦初始输入不符合范围,会无限刷提示
- 把
input.close()放在循环内部,第一次循环就关了扫描器,后面根本没法再输入 - 没有输出符合条件数值的逻辑
- 初始输入没给用户任何提示,用户不知道要输入什么
修改后的代码如下:
package chpt5_project; import java.util.Scanner; public class chpt5_project { public static void main(String[] args) { Scanner input = new Scanner(System.in); int count1; // 先提示用户输入 System.out.println("Enter a value between 30 and 70: "); count1 = input.nextInt(); // 输入不符合范围时循环提示重新输入 while (count1 > 70 || count1 < 30) { System.out.println("Invalid input! Enter a value between 30 and 70: "); count1 = input.nextInt(); // 循环内更新输入值,否则会无限循环 } // 输入符合条件时输出数值 System.out.println("Valid value: " + count1); input.close(); // 所有输入操作完成后再关闭扫描器 } }
修改说明:
- 将
input.close()移到循环外,确保所有输入操作完成后再关闭扫描器,避免后续输入报错 - 循环内添加
count1 = input.nextInt();,每次重新输入时更新变量值,解决无限循环问题 - 初始输入前增加提示文本,明确告诉用户输入要求
- 新增符合条件时的输出逻辑,打印用户输入的有效数值
- 把变量声明和初始化分开,逻辑更清晰
内容的提问来源于stack exchange,提问作者Dantes Nava
相关产品推荐
相关产品推荐

