我看了很多其他人,我仍然没有知道如何在我的代码中输入非重复代码。这里的新手需要有人解释。
import java.util.Random;
class random{
public static void main(String[] args) {
Random dice = new Random();
int number;
for (int counter = 1; counter <= 20; counter++) {
number = 1 + dice.nextInt(100);
System.out.println(number + " ");
}
}
答案 0 :(得分:2)
首先将随机数添加到集合中,这将停止重复的条目。然后循环并打印出该组。您可以通过几种不同的方式执行此操作,但这是对代码进行最少更改的方法:
Set<Integer> numbers = new HashSet<Integer>();
Random dice = new Random();
int number;
for (int counter = 1; counter <= 20;) {
number = 1 + dice.nextInt(100);
if(numbers.add(number)) { //Only increment the counter if the number wasn't already in the set
counter++;
}
}
for(Integer num : numbers) {
System.out.println(num + " ");
}
答案 1 :(得分:0)
而不是仅仅打印随机数有一个集合(只允许唯一元素)捕获数字并有一个if条件来检查集合的长度(set.size()== 20)来自循环直到那时你运行for循环来找到随机数。我认为这将解决您的问题
答案 2 :(得分:0)
跟踪之前生成的内容。试试这个
public static void main(String...args) {
Random dice = new Random();
Set<Integer> previouslyGenerated = new HashSet<Integer>();
int number = 0,counter = 0;
while (counter <20){
number = 1+dice.nextInt(100);
if (!previouslyGenerated.contains(number)){
previouslyGenerated.add(number);
System.out.println(number + " ");
counter++;
}
}
}