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

Java循环内输入验证异常:合法输入仍触发重新输入提示

问题解决:输入合法性校验的逻辑错误

你的问题出在while循环的条件判断上,错误使用了||(逻辑或)运算符,导致合法输入也会触发循环。

错误原因分析

当输入"A"时:

  • input.equals("A") == false → 结果为false
  • input.equals("B") == false → 结果为true
  • input.equals("C") == false → 结果为true
  • input.equals("D") == false → 结果为true

||运算符只要任一条件为true,整个表达式就会判定为true,所以即便输入合法内容,while循环仍会执行错误提示逻辑。正确逻辑应该是:只有当输入既不是A、也不是B、也不是C、也不是D时,才进入循环要求重新输入,这时候需要用&&(逻辑与)连接所有判断条件。

修正后的代码

String[] answers = new String[20];     //empty array for the student's answers
String input;                          //keyboard input

Scanner keyboard = new Scanner(System.in);

//prompt user for input and check if it's valid
//if it is, add input to the array
for (int i = 0; i < 20; i++)
{
   System.out.print("Enter your answer for problem #" + (i + 1) + ": ");
   input = keyboard.nextLine();

   while (!input.equals("A") && !input.equals("B") && !input.equals("C") && !input.equals("D"))
   {
      System.out.println("You must enter either A, B, C, or D.");
      System.out.print("Please reenter your answer for problem #" + (i + 1) + ": ");
      input = keyboard.nextLine();
   }
   answers[i] = input; 
}

额外优化建议

如果要支持大小写不敏感的输入(比如"a"也能通过校验),可以把equals替换为equalsIgnoreCase:

while (!input.equalsIgnoreCase("A") && !input.equalsIgnoreCase("B") && !input.equalsIgnoreCase("C") && !input.equalsIgnoreCase("D"))

或者将合法选项存入集合,让判断逻辑更简洁:

import java.util.Arrays;
import java.util.HashSet;
import java.util.Set;

// ... 其他代码不变
Set<String> validAnswers = new HashSet<>(Arrays.asList("A", "B", "C", "D"));
for (int i = 0; i < 20; i++)
{
   System.out.print("Enter your answer for problem #" + (i + 1) + ": ");
   input = keyboard.nextLine();

   while (!validAnswers.contains(input.toUpperCase()))
   {
      System.out.println("You must enter either A, B, C, or D.");
      System.out.print("Please reenter your answer for problem #" + (i + 1) + ": ");
      input = keyboard.nextLine();
   }
   answers[i] = input; 
}

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.15 02:00:36