需求是在整数1-9中间随机选择一个数字。
使用Math.random()。结果写成如下:int p = (int) (Math.random() * 9); 结果就是1和9永远随机不到。 查证Javase docs. 对于这个函数,是这样讲的: Returns a double value with a positive sign, greater than or equal to 0.0 and less than 1.0. 因为less than 1.0, 所以强制转化到integer, 上面的p是永远不会为9的。0倒是可以随机到的,因为强制转化时会取下整。 使用函数Random.nextInt(int n) 这个函数: Returns a pseudorandom, uniformly distributed int value between 0 (inclusive) and the specified value (exclusive) 比如上诉的需求可写为: Random ran = new Random(); int p =ran.nextInt(9)+1; 这样能够得到想要的结果。 如果要对任意输入的正整数范围取随机,则如下:- int createRandom(int min, int max) {
- Random random = new Random();
- return random.nextInt(max-min+1)+ min;
- }