【发布时间】:2016-03-16 06:02:17
【问题描述】:
我正在编写一个程序,其中包括设计一个多项选择测试评分器。我声明了一个数组来存储响应。我遇到的问题是,我不知道如何读取每个用户输入(char)来查看它是否正确。我拥有的代码只是一个占位符。我不知道该怎么做。这是我的代码的 sn-p:
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();
}
}
【问题讨论】:
-
你为什么在循环中创建
Scanner而不使用它。即使您确实打算使用它,也不要在循环内创建。在循环之前创建。 --- 通常将迭代器变量命名为i,而不是a。 ---System.in.read()只从输入中读取 1 个字符,但在您按 Enter 之前不会读取任何内容,然后您在该行上键入的所有内容都会被读取,一次一个字符。 -
@Andreas 我在循环之外创建了扫描仪,但是如何读取字符?