用随机数教授有人乘法的程序

我正在编写一个教授某人乘法的程序(游戏)。 在这个程序中,将生成随机的数字对并插入到问题中:“什么是x * y = z?” 如果此人正确回答,则系统将打印出“非常好!” 如果此人没有正确回答问题,系统将打印出“否则请再试一次”。 (作为回报,该程序将继续提问,直到该人正确回答问题。)当该人正确回答问题时,新方法将产生另一个问题供该人回答。

我的代码打破了变量“answer”和if语句“(猜测!=答案)。”

这是我的代码:

public class Exercise_535 { public class Multiply{ SecureRandom randomNumbers = new SecureRandom(); int answer; } public void Quiz() { Scanner input = new Scanner(System.in); int guess; System.out.println("Enter your answer: "); guess = input.nextInt(); while(guess != -1) { checkResponse(guess); System.out.println("Enter your answer: "); guess = input.nextInt(); } } public void createQuestion(){ SecureRandom randomNumbers = new SecureRandom(); int digit1 = randomNumbers.nextInt(); int digit2 = randomNumbers.nextInt(); answer = digit1 * digit2; System.out.printf("How much is %d times %d\n", digit1, digit2); } public void checkResponse(){ if (guess != answer) System.out.println("No. Please try again."); else{ System.out.print("Very Good!"); createQuestion(); } } } 

有没有人能够帮助,或者至少指出我正确的方向?

谢谢。

理解变量的范围很重要。 在java中,如果你创建一个变量(你说int guess或int answer),那个变量只存在于你放入的任何花括号中 – > {}。 因此,如果您需要在另一个方法中使用该变量,则需要在括号中将该变量传递给它。 checkResponse()不知道猜测或答案是什么,因为它们没有在该范围内声明,并且你没有在函数的开头传入它们(你可以使用checkResponse(int guess,int answer)和然后在你调用它时传递它们,例如)。

你有一个内部类Multiply,是否有理由在一个类中创建一个类? 有理由这样做,但似乎你没有任何理由这样做。

另外我没有看到一个main函数,它是Java程序的入口点,所有其他函数都需要从那里调用(因此Main()可以在你的情况下调用Quiz(),然后调用你的其他两个function)。 计算机一次读取一行程序,当你调用一个函数/方法(如Quiz())时,它会跳转到该部分,然后在该函数调用“return”时返回。

我知道这是很多信息,但你似乎并不了解Java程序是如何流动的。 你用什么来学习Java? 如果您正在阅读一本书或开设一门课程,我建议您先阅读一些早期的课程,以便更好地了解该课程的流程。 人们很难回答您的问题,因为您的代码设置方式没有逻辑流程(这就是为什么它不起作用)。 希望这有所帮助。