黑马程序员技术交流社区

标题: 关于random [打印本页]

作者: 蓝枫    时间: 2014-3-28 13:41
标题: 关于random
  1. class MathDemo
  2. {
  3.         public static void main(String[] args)
  4.         {
  5.                 for(int x= 0;x<10;x++)
  6.                 {
  7.                         int d = (int)(Math.random()*10+1);
  8.                         sop(d);
  9.                 }
  10.     }
  11.     public static void sop(Object obj)
  12.         {
  13.                 System.out.println(obj);
  14.         }
  15. }
  16. 为什么 Math.random()*10+1 就变成了1-10的随机数,不明白!求解释!
复制代码

作者: osully    时间: 2014-3-28 13:47
java.lang
类 Math
static double random()
          返回带正号的 double 值,该值大于等于 0.0 且小于 1.0。
相当于  0.0<= random()<1.0
random() *10+1  不就是  1.0<= random()* 10+1<11.0  
强转成int类型 不就是1~10的整数了吗

作者: H-Deka    时间: 2014-3-28 15:11
Math.random()  返回大于等于 0.0 且小于 1.0 的伪随机 double 值。
(int)Math.random()*10的取值范围在0--9,再加上1就是0--10之间




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2