我需要它以随机顺序打印“ N1”,然后“ N2”。我的问题是我不知道如何保留值(num和num2),因此不会两次打印相同的数字。我不知道如何在下次使用该方法时保留值。任何帮助都是经过鉴定的:)

import java.util.Random;
public class Testing {
    public static void main(String[] args) {
        System.out.println(random());
        System.out.println(random());
    }
    public static String random() {
        Random rgen = new Random();
        int rNumber;
        int num = 0, num2 = 0;

        do {
            rNumber = rgen.nextInt(2) + 1;
        } while ((rNumber == 1 && num == 1) || (rNumber == 2 && num2 == 1));

        if (rNumber == 1) {
            num = 1;
            return "N1";
        }
        else if (rNumber == 2) {
                num2 = 1;
            return "N2";
        }
        else
            return null;
    }
}

最佳答案

我认为您的意思是您想保留numnum2的值。
random()删除它们的声明,并将它们放在类级别的main()之前:

private static int num = 0;
private static int num2 = 0;


否则,此循环:

do {
    rNumber = rgen.nextInt(2) + 1;
} while ((rNumber == 1 && num == 1) || (rNumber == 2 && num2 == 1));


这是没有道理的,因为条件是:

((rNumber == 1 && num == 1) || (rNumber == 2 && num2 == 1))


始终为false

关于java - 多次引用方法时保持变量,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/53748109/

10-08 23:25