Java 在下想生成13个不重复的随机数 求高手找错

import java.util.Random;
public class Dice {
public static void main(String[] args) {
Random rand = new Random();
int[] ranRecord = new int[13];
int ranCount = 0;
int ranTemp = 0;
boolean notExist = true;
while (ranCount < 13) {
ranTemp = rand.nextInt(13);
for (int i=0; i<ranCount; i++) {
if (ranTemp == ranRecord[i]) {
notExist = false;
}
}

if (notExist) {
ranRecord[ranCount] = ranTemp;
ranCount++;
}
}

for (int i=0; i<13; i++) {
System.out.println(ranRecord[i]);
}
}
}

代码和膝盖一并奉上

你少了一行代码

while (ranCount < 13) {
ranTemp = rand.nextInt(13);
for (int i = 0; i < ranCount; i++) {
if (ranTemp == ranRecord[i]) {
notExist = false;
}
}
if (notExist) {
ranRecord[ranCount] = ranTemp;
ranCount++;
}
notExist = true; // 漏掉了,不然永远都是false了,要重置回来
}

追问

谢谢啦 我补上了这一句 可是好像ranCount 一直卡在12那个地方绕不出来

追答

你加上这个就会出来了啊,除非你的随机数有问题,永远都是一样的。你的条件必须是true了,值才会加1,加到13就出来了。如果false,永远出不来

追问

谢啦

温馨提示:答案为网友推荐,仅供参考
相似回答