[英]How can I generate two random numbers(not repeated)?
我想在Java中生成0..99范圍內的兩個數字,並且不必重復。 我在下面嘗試了代碼,但對我不起作用。
int number1 = randomGenerator.nextInt(100);
int number2 = randomGenerator.nextInt(100);
if(number1 == number2){
while (number1 != number2){
number2 = randomGenerator.nextInt(100);
}
}
如果number1
和number2
相等,則它們將不相等。 只需更改您的while
循環:
int number1 = randomGenerator.nextInt(100);
int number2 = randomGenerator.nextInt(100);
while(number1 == number2){
number2 = randomGenerator.nextInt(100);
}
這是行不通的,因為您永遠不會進入循環,因為條件是錯誤的。 在循環中,您需要==
,而不是!=
。 您也可以刪除if
:
int number1 = randomGenerator.nextInt(100);
int number2 = randomGenerator.nextInt(100);
while (number1 == number2){
number2 = randomGenerator.nextInt(100);
}
int number1 = randomGenerator.nextInt(100);
int number2 = randomGenerator.nextInt(99);
if(number2 >= number1) {
++number2;
}
還可以在生成隨機索引而不是集合中給定的任何索引時檢查有關它的討論
如果它們都必須唯一,則應將結果添加到列表中。 然后,您可以將當前隨機數與過去的每個結果進行比較。
Random random = new Random();
int number1 = random.nextInt(100);
int number2 = random.nextInt(100);
List<Integer> randomsList = new ArrayList<Integer>();
while (randomsList.contains(number1)){
number1 = random.nextInt(100);
}
randomsList.add(number1);
while (randomsList.contains(number2)){
number2 = random.nextInt(100);
}
randomsList.add(number2);
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.