我需要用它来随机打印“ 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;
}
}
答案 0 :(得分:0)
我认为您的意思是您希望保留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
。
答案 1 :(得分:0)
要存储超出函数范围的内容,请将其返回传递给下一个调用或使用静态变量:
public class Testing {
public static int store = 0;
/* your code*/
}
可以像访问其他变量一样访问此变量,但是不会丢失其值。曾经。只能更改。
但是更简单的解决方案是:
public static void random() {
System.out.println(Math.random() < 0.5 ? "N1\nN2" : "N2\nN1");
}
答案 2 :(得分:0)
对于此作业,您必须创建两个全局变量num1和num2(在任何函数范围之外声明的变量)。由于您的random()函数是静态的,因此最好使用静态全局变量。全局变量在函数修改其值之前不会重置并保留其值。
答案 3 :(得分:0)
您在curl -4vvvu guest:guest -X DELETE 'localhost:15672/api/connections/My%20RabbitMQ%20Connection'
处的条件始终为假。初始化后,您尚未为num和num1分配任何新值。
另外,也许您想要这样的东西?
} while ((rNumber == 1 && num == 1) || (rNumber == 2 && num2 == 1));