因此,我编写了一个程序,该程序从数组中循环出两个问题。我要在这里发生的事情是提示用户输入的是空白还是空,以及用户是否输入除a,b和c之外的任何其他字母,数字或符号。这里发生的事情是,每当我在第一个问题上输入a时,它也会打印“该答案不能为空”,这是我输入有效输入后就不应出现的。
for(int i = 0; i < question.length; i++){
do{
System.out.print(question[i].prompt + "\nAnswer: ");
answer = s.nextLine();
if(!answer.equalsIgnoreCase("a") &&
!answer.equalsIgnoreCase("b") &&
!answer.equalsIgnoreCase("c")){
System.out.println("Invalid input!\n");
} if(!answer.isEmpty()){
System.out.println("The answer can't be blank.\n");
}
} while(!answer.equalsIgnoreCase("a") &&
!answer.equalsIgnoreCase("b") &&
!answer.equalsIgnoreCase("c") &&
!answer.isEmpty());
if(answer.equalsIgnoreCase(question[i].answer)){
score++;
}
}
您的代码应该看起来像这样...
for(int i = 0; i < question.length; i++){
do{
System.out.print(question[i].prompt + "\nAnswer: ");
answer = s.nextLine();
if(answer.isEmpty()){
System.out.println("The answer can't be blank.\n");
}else if(!answer.equalsIgnoreCase("a") &&
!answer.equalsIgnoreCase("b") &&
!answer.equalsIgnoreCase("c")){
System.out.println("Invalid input!\n");
}
} while(!answer.equalsIgnoreCase("a") &&
!answer.equalsIgnoreCase("b") &&
!answer.equalsIgnoreCase("c") &&
!answer.isEmpty());
if(answer.equalsIgnoreCase(question[i].answer)){
score++;
}
}
[我在代码中所做的更改:删除了多个if,而是使用if-else,并从!
中删除了!answer.isEmpty()
。希望这对您有帮助:-)
快乐编码