Java 你如何随机给变量赋值?
如何将一个随机值赋给变量myVariable为a、b或c?我尝试了以下操作,但出现了几个错误:Java 你如何随机给变量赋值?,java,string,variables,random,Java,String,Variables,Random,如何将一个随机值赋给变量myVariable为a、b或c?我尝试了以下操作,但出现了几个错误: Random r = new Random(); String i = r.next()%33; switch (i) { case 0: myVariable = "a"; case 1: myVariable = "b"; case 2: myVariable = "c"; } 通常,当涉及到一个随机数时,我只是检查它是否在一个范围内,例如 Random ra
Random r = new Random();
String i = r.next()%33;
switch (i) {
case 0:
myVariable = "a";
case 1:
myVariable = "b";
case 2:
myVariable = "c";
}
通常,当涉及到一个随机数时,我只是检查它是否在一个范围内,例如
Random random = new Random();
int output = random.next(100);
if(output > 0 && output < 33) {
myVariable = "a";
}
else if(output >= 33 && output < 66) {
myVariable = "b";
}
else {
myVariable = "c";
}
这使得出现每个值的概率几乎相等。您应该使用
r.nextInt(3);
获取范围为0-2的数字。所以
switch(r.nextInt(3)) {
case 0: myVar = "a"; break;
case 1: myVar = "b"; break;
case 2: myVar = "c"; break;
}
所有答案都很好,但这里有一个不同的答案:
class Randy {
private final String[] POSSIBLE_VALUES = { "foo", "bar", "baz", ... };
private final Random random = new Random();
String getRandomValue() {
return POSSIBLE_VALUES[random.nextInt(POSSIBLE_VALUES.length)];
}
}
提供必要的代码来重现您的准确错误。另外,不要忘记为变量提供默认值。我认为r.next%33不会返回字符串。r.next的size参数在哪里?不,它不会返回字符串,switch语句也不会使用字符串。阅读javadoc?
class Randy {
private final String[] POSSIBLE_VALUES = { "foo", "bar", "baz", ... };
private final Random random = new Random();
String getRandomValue() {
return POSSIBLE_VALUES[random.nextInt(POSSIBLE_VALUES.length)];
}
}