首页 > 解决方案 > 在函数中使用时无法解析 Rand Ints

问题描述

一切都很好,除了当我将产品定义为两个随机整数相乘时,我得到未解析的变量。如果整数是常规输入但由于某种原因使用随机输入的产品不起作用。这是我所拥有的:

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");
            }
        }
    }
}

标签: java

解决方案


它与随机数无关。问题是你初始化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;

推荐阅读