我需要它以随机顺序打印“ 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;
}
}
最佳答案
我认为您的意思是您想保留num
和num2
的值。
从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/