4

对于我应该完成的任务,我和我的小组被要求编写一个教育/互动游戏,我们决定做一个基本的数学游戏。

为了得到用户的答案,我们决定使用 Java Scanner 并将这行代码放在我们所有代码的顶部;

java.util.Scanner

使用它的循环之一是上面有问题的页面,循环看起来像这样;

scoreCount = 0;

for (questions = 0; questions < 5;) {
  //get the user's answer
    userAnswer[questions] = input.nextInt();
  //text box for users answer

  if (userAnswer[questions] == compAnswer) { 
    //put tick next to answer

    //add one to score
      scoreCount = scoreCount + 1;
  } else if (userAnswer[questions] != compAnswer) {
    //put cross next to answer

  }

  //go to next question
  questions++ ;

}

我正在处理所有抛出的错误,每次我没有java.util.Scanner注释掉时,处理都会抛出错误unexpected token:,然后是classor void,我没有得到,但是当java.util.Scanner被注释掉时,所有的类和无效工作和.input.nextInt()不被认可。

我是 Java 编程和处理的新手,任何帮助都将不胜感激

编辑

我认为这是让你看到我的代码的链接,它被称为测试;

https://github.com/MeganSime/Week8DataVis

4

2 回答 2

3

你必须检查扫描仪是否有下一个 int (token)

Scanner input = new Scanner(System.in);

.
.

if(input.hasNextInt()) { // or hasNext()
    userAnswer[questions] = input.nextInt();
}
于 2013-11-03T13:39:53.913 回答
2

您可能int在扫描仪期望的地方插入了一个非值。你应该这样做:

if(input.hasNextInt()) {
   userAnswer[questions] = input.nextInt();
} else {
   scan.next(); //consume any non-int value like ":"
}
于 2013-11-03T13:37:05.067 回答