我需要根据“白色:黑色:亚洲”的比例来随机分配“种族”变量,例如2:1:1
我的程序创建了新的人(对象),我希望将他们的种族随机化
//CONSTRUCTOR
public people() {
race = raceGenerator();
}
public String raceGen() {
String info;
double probAllocation = Math.random();
if (probAllocation < 0.5) {
info = White;
} else if (0.5 < probAllocation < 0.75) {
info = Black;
} else {
info = Asian;
}
return info;
}
问题出在
else if (0.5 < probAllocation < 0.75) {info = Black;}
行中我的IDE告诉我我有
bad operand types
这是什么意思,如果这行不通,有没有更好的方法来对定性变量进行随机化?
最佳答案
您不能像数学中那样链接比较运算符。
语法为:
else if (0.5 < probAllocation && probAllocation < 0.75)
或者更确切地说,为了避免在您的范围内出现漏洞:
else if (0.5 <= probAllocation && probAllocation < 0.75)
甚至只是
else if (probAllocation < 0.75)
因为每个小于0.5的值都将由第一个
if
处理。同样,变量在Java中以小写字母开头,而常量全为大写字母。因此,值可能应该是BLACK,WHITE和ASIAN。而且,您应该考虑对这些值使用枚举而不是字符串,以使您的代码更清晰,更安全。