【发布时间】:2018-11-10 11:13:34
【问题描述】:
我有一个函数getNormalList(),它必须返回一个包含 3 个随机整数 0-5 的列表,但并不完全相同。它不像我想要的那样工作。有时,尽管进行了检查,它仍会输出相同的 3 个数字。
public class SpinResultGenerator {
public ArrayList<Integer> getNormalList() {
ArrayList<Integer> integerList = new ArrayList<Integer>();
Random r = new Random();
int Low = 0;
int High = 6;
for (int i = 0; i < 3; i++) {
int number = r.nextInt(High - Low) + Low;
integerList.add(number);
}
if (integerList.get(0) == integerList.get(1) && integerList.get(0) == integerList.get(2)
&& integerList.get(1) == integerList.get(2)) {
integerList.clear();
for (int i = 0; i < 3; i++) {
int number = r.nextInt(High - Low) + Low;
integerList.add(number);
}
}
return integerList;
}
public ArrayList<Integer> getJackpotList() {
ArrayList<Integer> integerList = new ArrayList<Integer>();
integerList.add(5);
integerList.add(5);
integerList.add(5);
return integerList;
}
}
例如,如果结果是[4,4,4],for 循环会生成新数字。然而它仍然能够输出 3 个相同的整数。为什么?
【问题讨论】:
-
@Eran 那是我的错误。我已将“所有独特”更改为“不完全相同”以更好地反映原始描述。
标签: java for-loop if-statement random