Java 为什么不是';我的代码是否多次随机生成?

Java 为什么不是';我的代码是否多次随机生成?,java,Java,很抱歉,可能是一个无趣的问题,但我无法找出这段代码的错误。我到处找了,但找不到任何答案 问题是,当我需要随机生成num和num2 5次时,它只会随机生成num和num2一次。非常感谢您的帮助 import java.util.Scanner; import java.util.Random; public class Choice5 { public static void main(String [] args) { Random r = new Rando

很抱歉,可能是一个无趣的问题,但我无法找出这段代码的错误。我到处找了,但找不到任何答案

问题是,当我需要随机生成num和num2 5次时,它只会随机生成num和num2一次。非常感谢您的帮助

import java.util.Scanner;

import java.util.Random;

public class Choice5
{
    public static void main(String [] args)
    {
        Random r = new Random();
        Scanner k = new Scanner(System.in);
        String name;

        int num= 1 + r.nextInt(10);
        int num2=1 + r.nextInt(10);

        int answer = num*num2;
        int attempt;
        int countcorrect = 0;
        int countincorrect =0;

        System.out.println("Hi, what's your name?");
        name =k.next();

        for(int x=1; x<=5; x++)
        {
            System.out.println("Test " +x+ " of 5");
                System.out.println("Ok " +name+ " What is " +num+ " x " +num2+ " ?");
                attempt = k.nextInt();

                if(attempt == answer)
                {
                    System.out.println("Good Job " +name+ " the answer was indeed " +answer);
                    countcorrect++;
                }
                if(attempt != answer)
                {
                    System.out.println("Incorrect " +name+ " the answer was actually " +answer);
                    countincorrect++;
                }
        }
                System.out.println("You got " +countcorrect+ " right");
                System.out.println("You got " +countincorrect+ " wrong");
                if (countcorrect < 3)
                {
                    System.out.println("You should try the test again");
                }
                else
                {
                    System.out.println("Good job " +name+ " ,you passed the test!");
                }

    }
}
import java.util.Scanner;
导入java.util.Random;
公共课选择5
{
公共静态void main(字符串[]args)
{
随机r=新随机();
扫描仪k=新的扫描仪(System.in);
字符串名;
int num=1+r.nextInt(10);
int num2=1+r.nextInt(10);
int-answer=num*num2;
智力测验;
int countcorrect=0;
int count不正确=0;
System.out.println(“嗨,你叫什么名字?”);
name=k.next();

对于(int x=1;x您正在为
num
num2
选择一次随机数,精确到
main
的顶部,更重要的是,在
for
循环之前。这些数字不会再次分配,因此在所有循环迭代中都保持不变

要使它们在每次循环迭代中都发生更改,请声明数字和答案的变量,并在
for
循环中(而不是之前)分配新值

for(int x=1; x<=5; x++)
{
    int num= 1 + r.nextInt(10);
    int num2=1 + r.nextInt(10);
    int answer = num*num2;
    // rest of code is the same

for(int x=1;x在本例中,当您调用nextNum()时,会生成一个随机数,因为num和num2只调用一次,因为它不在循环中


简单的回答是,将这些呼叫放在你的循环中以创建多个随机数。

你认为它为什么应该重新分配
num2