如何将最终值的总和加起来?

时间:2011-11-21 04:54:07

标签: java arrays object methods

这是我的第一个代码块,我的主要类。我已经创建了问题数组和对象,这只是为了向你们展示我想要完成的工作。

for(int i = 0; i<questionArray.length; i++)
{
  questionArray[i].askQuestion();
  questionArray[i].getAnswer();
  questionArray[i].checkAnswer();
}

这些是我在上面循环中使用的方法:

public void askQuestion()
{
   System.out.println(question);
   System.out.println("This question is worth " + pointValue + " point(s)");
   System.out.println("Please enter your answer: ");
}

public String getAnswer()
{
    return answer;
}

public boolean checkAnswer()
{
  Scanner keyboard = new Scanner(System.in);
  String UserAnswer = keyboard.nextLine();
  if (UserAnswer.equalsIgnoreCase(answer))
  {
    System.out.println("congratulations you have earned " + pointValue + " point(s)\n");
    return true;
  }
  else 
  {
    System.out.println("sorry you did not get the answer correct");
    System.out.println("The correct answer is " + this.answer + "\n");
    return false;
  }
}

所以你可以看到这是一个TriviaGame类, 1.)我正在尝试制作两个方法,一个能够在每个问题之后显示pointValue(仅当用户回答==回答时)。 2.)第二个是当用户得到正确答案时,将每个pointValue(当答案相等时,A.k.a checkAnswer == true)相加,并在结尾显示所有结果。

4 个答案:

答案 0 :(得分:2)

你的意思是:

 int score += pointValue; // note the plus (+)



另外,请考虑将if (checkAnswer() == true)更改为if (checkAnswer())

答案 1 :(得分:1)

在第一个代码块中,您在for循环中运行每个方法,您应该运行questionArray[i].updateScore()而不是questionArray[i].checkAnswer()。截至目前,您正在运行checkAnswer(),它会从用户那里获得答案并检查其是否正确。但是如果你计划在此之后调用updateScore(),我相信你会在if语句的条件下再次运行checkAnswer(),从而再次收集用户的回答而无意义。只运行updateScore(),您将收集答案并更新分数。我不确定你是否已经知道这一点,但我想我会告诉你以防万一。

至于你的初步问题,你可以试试这个:     为Question类创建一个布尔实例变量(初始化为false),如果答案正确,将设置为true。这样,您可以遍历questionArray并检查他们的答案是否正确。如果答案正确,则将问题pointValue添加到总分中。

我希望我理解你的问题,希望这有帮助,
     泰勒

答案 2 :(得分:1)

最简单,最简单的方法是使用实​​例或静态变量来跟踪它。

答案 3 :(得分:0)

您想使用变量score来汇总到目前为止赚取的积分吗?然后你必须使它成为类的属性或将其声明为静态,应该用0初始化它,事实上,必须添加每次获得的分数,正如波希米亚人已经告诉过你的那样。

int score = pointValue;

以及

int score += pointValue; 

是您的updateScore方法的本地方法,当该方法离开时,它的值将会丢失。如果你宣布

static int score = 0;

RGDS,

托马斯