public void defineDimensions() 
    {
        int i = (int)(java.lang.Math.random()*7+2); //一个数在8和2之间
        int j = (int)(java.lang.Math.random()*7+2);

        boolArray = new boolean[i][j];
    }
求教空色字体的地方,为什么这么表示是代表 8和 2 之间的数?

解决方案 »

  1.   

    Math.random()最大0.99999...最小0。所以java.lang.Math.random()*7+2最大8,最小2
      

  2.   

    (int)(8.9999999999....  -  2)
      

  3.   

    Math.random(); 生成0到1之间的数,不包括1(无限接近)(int)(java.lang.Math.random()*7+2)
    所以Matn.random() * 7就是生成0到无限接近7之间的数
    就是0到6.99999999...再加2
    就是
    2到8.999999.....
    再将结果强转换成int
    小数部分就会被截掉
    所以最小是2 最大是8