Java 我怎样才能把这些分数加起来作为最终值呢?

Java 我怎样才能把这些分数加起来作为最终值呢?,java,arrays,object,methods,Java,Arrays,Object,Methods,这是我的第一段代码,我的主类。我已经创建了问题数组和对象,这只是为了向你们展示我要做的事情 for(int i = 0; i<questionArray.length; i++) { questionArray[i].askQuestion(); questionArray[i].getAnswer(); questionArray[i].checkAnswer(); } 如你所见,这是一个TriviaGame类, 1.)我尝试创建两种方法,一种方法能够在每个问题之后显示po

这是我的第一段代码,我的主类。我已经创建了问题数组和对象,这只是为了向你们展示我要做的事情

for(int i = 0; i<questionArray.length; i++)
{
  questionArray[i].askQuestion();
  questionArray[i].getAnswer();
  questionArray[i].checkAnswer();
}
如你所见,这是一个
TriviaGame
类, 1.)我尝试创建两种方法,一种方法能够在每个问题之后显示pointValue(仅当用户回答==回答时)。 2.)第二个是当用户得到正确答案时,将每个pointValue相加(同样当答案相等时。也称为checkAnswer==true),并在最后显示所有结果。

您的意思是:

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


另一方面,考虑更改<代码>(校验应答()==true)< /C> > <代码> >(校验应答)(< /代码>

,您的意思是:

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



另一方面,考虑更改<代码>(CQuaseRebug)= /true(<代码> > <代码> >(CQuaseRebug))

< P>是否使用变量<代码>得分>代码>聚合迄今为止所赚取的分数?然后你必须使它成为类的一个属性,或者声明它为静态的,应该用0初始化它,事实上,正如Bohemian已经告诉你的那样,必须添加每次获得的分数

int score = pointValue;
以及

int score += pointValue; 
对于updateScore方法是本地的,当该方法保留时,它的值将丢失。如果你申报

static int score = 0;
Rgds


Thomas

是否要使用变量
score
来汇总到目前为止获得的积分?然后你必须使它成为类的一个属性,或者声明它为静态的,应该用0初始化它,事实上,正如Bohemian已经告诉你的那样,必须添加每次获得的分数

int score = pointValue;
以及

int score += pointValue; 
对于updateScore方法是本地的,当该方法保留时,它的值将丢失。如果你申报

static int score = 0;
Rgds


Thomas

在第一个代码块中,在for循环中运行每个方法时,应该运行
questionArray[i].updateScore()
而不是
questionArray[i].checkAnswer()
。从现在起,您正在运行
checkAnswer()
,它从用户那里获取答案并检查它是否正确。但是如果您计划在此之后调用
updateScore()
,我相信您最终会在if语句的条件下再次运行
checkAnswer()
,从而再次从用户那里收集答案,而无需进行任何修改。只需运行
updateScore()
,您就可以收集答案并更新分数。我不确定你是否已经知道,但我想我会让你知道以防万一

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

我希望我理解了你的问题,希望这能有所帮助,

Tyler

在第一段代码中,在for循环中运行每个方法时,应该运行
questionArray[i].updateScore()
而不是
questionArray[i].checkAnswer()
。从现在起,您正在运行
checkAnswer()
,它从用户那里获取答案并检查它是否正确。但是如果您计划在此之后调用
updateScore()
,我相信您最终会在if语句的条件下再次运行
checkAnswer()
,从而再次从用户那里收集答案,而无需进行任何修改。只需运行
updateScore()
,您就可以收集答案并更新分数。我不确定你是否已经知道,但我想我会让你知道以防万一

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

我希望我理解了你的问题,希望这能有所帮助,

Tyler

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

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

每次我使用updateScore时,我都必须在回答每个问题后按enter键,即使我按照你的建议去做。程序运行平稳,没有任何updateScore方法。。。但是我仍然需要找到一种方法来跟踪分数,我设置它的方法不起作用,我的checkAnswer()方法是否错误?您可以在驱动程序类中使用一个变量来跟踪运行总数(假设它声明为int total=0;然后,让您的checkAnswer()方法返回int)(即,如果答案正确,则为问题的点值,如果答案不正确,则为0)而不是布尔值。因此,在for循环中,您可以说total+=questionArray[i]。checkAnswer()代替checkAnswer()行。这样,你可以在每个问题后显示和更新总计,每次我使用updateScore时,你只需在questionArray上迭代一次,在回答每个问题后,我必须按enter键,即使我按照你的建议去做。程序运行平稳,没有任何updateScore方法……但我仍然需要找到跟踪t的方法我的checkAnswer()方法错误吗?可以在驱动程序类中使用一个变量来跟踪运行总数(假设它声明为int-total=0;然后,让您的checkAnswer()方法返回int)(即,如果回答正确,则为问题的分值,如果回答不正确,则为0),而不是布尔值