我正在编写一个程序,其中包括设计一个多选测试分级器。我声明了一个数组来存储响应。我遇到的问题是,我不知道如何阅读每个用户输入(字符)以查看它是否正确。我的代码只是一个占位符。我无法弄清楚要做什么。这是我的代码片段:
for (int a = 0 ; a < response.length ; a++)
{
System.out.print((a + 1) + ": ");
Scanner s = new Scanner(System.in);
response [a] = System.in.read();
while (response [a] < 'A' || response [a] > 'D')
{
System.out.println ("Invalid input. Enter answers with A, B, C, or D only!");
response [a] = System.in.read();
}
}
答案 0 :(得分:1)
我不完全确定你想要达到的目标,所以我将为我的答案做一些假设:
用户在每次回答后点击回车键,如果这是多项选择测试,这对我来说很自然。
您将知道正确答案,只需检查输入是否正确。
char [] correctAnswers = {'A', 'B', 'C', 'A'};
Scanner in = new Scanner(System.in);
for(int i = 0; i < correctAnswers; i ++){
System.out.println("Please input answer:");
String valueString = in.nextLine().toUpperCase();
if(valueString.length() != 1){
System.out.println("Answer invalid. Please only type one character");
i--;
} else {
char answer = valueString.charAt(0);
if(correctAnswers[i] == answer)
System.out.println("Correct");
else
System.out.println("Wrong");
}
}
这个样本应该可以解决问题。
<强>替代强>
如果用户要输入他的所有答案然后按回车键,您可以按如下方式访问每个字符:
char [] correctAnswers = {'A', 'B', 'C', 'A'};
Scanner in = new Scanner(System.in);
System.out.println("Please input " + correctAnswers.length + " answer(s):");
String answerString = in.nextLine().toUpperCase();
if(answerString.length() != correctAnswers.length){
System.out.println("Incorrect number of answers entered");
} else {
for(int i = 0; i < answerString.length; i ++){
if(correctAnswers[i] == answerString.charAt(i)){
System.out.println("Answer " + (i + 1) + " Correct");
} else {
System.out.println("Answer " + (i + 1) + " Wrong");
}
count ++;
}
}
答案 1 :(得分:0)
我不清楚您打算如何阅读输入,但如果您希望用户输入每个问题的答案,您可以修改以下代码
for (int a = 0 ; a < response.length ; a++)
{
System.out.print((a + 1) + ": ");
Scanner s = new Scanner(System.in);
response [a] = s.next();
while (response [a] < 'A' || response [a] > 'D')
{
System.out.println ("Invalid input. Enter answers with A, B, C, or D only!");
response [a] = s.next().charAt(0);
}
}
s.next()将输入作为字符串输入,因此您可能需要在循环中尝试取出第一个char。
如果您打算从某个文件中读取输入,而不是阅读过程会有所不同,您可以查找。