gpt4 book ai didi

java - 重复方法

转载 作者:太空宇宙 更新时间:2023-11-04 07:34:37 25 4
gpt4 key购买 nike

我的程序尚未完成,但我需要帮助找到运行我的方法 6 次的方法。这是一个数学练习游戏,其中方法输出问题并计算答案。理想情况下,该方法运行 6 次(总共 6 道数学问题),然后输出“LEVEL ONE COMPLETE”语句。但每当我运行它时,它都会在每个问题的末尾输出“LEVEL ONE COMPLETE”。此外,每次用户答对问题时,金额 (int amount = 0;) 不会增加 (amount+=150;)。我是初学者,因此我们将不胜感激!

还有一点额外的事情......如果我想让游戏在用户得到 3 个错误答案时结束,我应该如何将其包含到我的代码中?

谢谢!

这是我在主方法中调用该方法的地方。运行它 6 次:

  for (int loop = 0; loop <= 6; loop++) { findAdd() }

这是我正在调用的方法(包含数学问题):

public static int findAdd ()
{
Object[] optionsA = {"Yes Please", "Nope! I'm good!"};
int wrong = 0;
int amount = 0;
int increment = 150;
int questionnum = 0;
questionnum ++;
int numOne = (int)(Math.random () * 30);
int numTwo = (int)(Math.random () * 30);
int answer = numOne + numTwo;

String useranswerA = JOptionPane.showInputDialog(null,"Question #" + questionnum + " is for: $" + increment + "\n" + numOne + " + " + numTwo + " = ?", "Question", JOptionPane.INFORMATION_MESSAGE);
int useranswer = Integer.parseInt(useranswerA);

if (useranswer != answer)
{
wrong ++;
JOptionPane.showMessageDialog(null,"You got the wrong answer! \n The correct answer is: " + answer + " \n Questions Wrong: " + wrong, "Wrong Answer", JOptionPane.INFORMATION_MESSAGE);
int y = JOptionPane.showOptionDialog(null,"CASH OUT with a total of $" + amount + "?","Cash Out?", JOptionPane.YES_NO_OPTION,JOptionPane.QUESTION_MESSAGE,null,optionsA,optionsA[0]);
if (y == JOptionPane.YES_OPTION) {
JOptionPane.showMessageDialog(null,"Thanks for Playing!", "Thank You!", JOptionPane.INFORMATION_MESSAGE);
System.exit(0);
}
if (y == JOptionPane.NO_OPTION) {}
}
else if (useranswer == answer)
{
amount+=150;
JOptionPane.showMessageDialog(null,"Correct!", "Right Answer", JOptionPane.INFORMATION_MESSAGE);
int y = JOptionPane.showOptionDialog(null,"CASH OUT with a total of $" + amount + "?","Cash Out?", JOptionPane.YES_NO_OPTION,JOptionPane.QUESTION_MESSAGE,null,optionsA,optionsA[0]);
if (y == JOptionPane.YES_OPTION) {
JOptionPane.showMessageDialog(null,"Thanks for Playing!", "Thank You!", JOptionPane.INFORMATION_MESSAGE);
System.exit(0);
}
if (y == JOptionPane.NO_OPTION) {}
}


JOptionPane.showMessageDialog(null,"LEVEL ONE COMPLETE!", "LEVEL 1", JOptionPane.INFORMATION_MESSAGE);
JOptionPane.showMessageDialog(null,"Cash on Hand: $ " + amount, "Cash", JOptionPane.INFORMATION_MESSAGE);
return useranswer;
}

最佳答案

首先,这调用了函数 7 次,而不是 6 次:

for (int loop = 0; loop <= 6; loop++) { findAdd() }

但更重要的是,这个函数正在做你所描述的事情。每次调用它时,它都会提出一个问题,得到答复,然后打印“LEVEL ONE COMPLETE”,因为这就是您编写的方式。此外,变量 amount 是函数的本地变量,因此每次调用该函数时,它都会更新,然后当函数返回时该值超出范围,丢弃您刚刚计算的内容。

“amount”变量和“LEVEL COMPLETE”消息都需要移到函数之外。如何做到这一点是一个选择问题。您可能还希望将变量 amount 设为静态(取决于您未向我们展示的其余代码)。

关于java - 重复方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17126768/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com