在函数中使用时无法解析Rand Int

时间:2018-04-27 01:27:43

标签: java

一切都很好,除非我将产品定义为两个随机整数相乘,我得到未解决的变量。如果整数是常规输入但由于某些原因使用随机产品无法正常工作,则可以正常工作。这就是我所拥有的:

import java.util.Random;
import java.util.Scanner;

public class class3 {

    public static void main(String[] args) {

        Scanner scan = new Scanner(System.in);

        Random rn1 = new Random();
        int product;

        int answer;

        for(int i =0; i < 1; i++) {
            int answer1 = rn1.nextInt(9) + 1;
            System.out.println(answer1);
        }

        Random rn2 = new Random();

        for(int i =0; i < 1; i++) {
            int answer2 = rn2.nextInt(9) + 1;
            System.out.println(answer2);
        }

        product = answer1 * answer2;

        while(true) {
            System.out.println("What is the product of these numbers?");

            answer = scan.nextInt();

            if(answer == product) {

                System.out.println("yay");
            }


            if(answer != product) {

                System.out.println("no");
            }
        }
    }
}

1 个答案:

答案 0 :(得分:0)

它与随机数无关。问题是您在循环内初始化answer1answer2。如果在循环内初始化变量,它就不会存在于循环之外。尝试添加

int answer1 = 0;
int answer2 = 0;
在循环之前

。你的循环也只迭代一次。为什么循环只迭代一次?您也不需要两个随机对象。请尝试改为:

   answer1 = rn1.nextInt(9) + 1;
   System.out.println(answer1);

   answer2 = rn1.nextInt(9) + 1;
   System.out.println(answer2);

   product = answer1 * answer2;