Ron*_*120 1 java random do-while
所以,我试图创建一个方法,返回范围(1-43)内的随机数,但只有奇数.我使用了do-while语句,但程序不断返回多种数字 - 偶数和奇数.你能不能告诉我它有什么问题,所以它只返回所要求的数字类型(取决于:%= 0/1)?
public static String generateRandomOddNumbersWithinRange(){
int randomNum = ThreadLocalRandom.current().nextInt(1, 43 + 1);
do {
return Integer.toString(randomNum);
} while (randomNum % 2 == 1);
}
Run Code Online (Sandbox Code Playgroud)
你无条件地回来了.相反,您应该循环直到数字符合条件,然后才返回它:
public static String generateRandomOddNumbersWithinRange(){
int randomNum = 0;
do {
randomNum = ThreadLocalRandom.current().nextInt(1, 43 + 1);
} while (randomNum % 2 == 0);
return Integer.toString(randomNum);
}
Run Code Online (Sandbox Code Playgroud)
或者,更强大的解决方案可以是将0到21之间的数字随机化,然后加倍并添加一个:
public static String generateRandomOddNumbersWithinRange(){
return Integer.toString(ThreadLocalRandom.current().nextInt(0, 21 + 1) * 2 + 1);
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
925 次 |
| 最近记录: |