带有多维数组的math.random

时间:2015-01-25 04:55:14

标签: java arrays

我只是试图从动物阵列中打出特定范围。我尝试了3种不同的方式,(提示)我注释掉的代码。 print语句总是打印熊。我该如何解决这个问题?

String animal[][] = {
        {"bear","lion","wolf","panther"},
        {"alligator","komododragon","spyro the dragon","turtle"},
        {"great white","clown fish","hammer head","Nessi"},
        {"blue jay","red jay","eagle","crow"},
    };

    int x = (int) Math.random() * (2 - 0);
    int y = (int) Math.random() * (4 - 0);  

    //String yourAniaml = animal[(int) Math.random() * (2-0) ][(int) Math.random() * (4-0)];
//  System.out.println(animal[(int) Math.random() * (2-0) ][(int) Math.random() * (4-0)]);
    System.out.println( animal[x][y] );

2 个答案:

答案 0 :(得分:0)

您需要投射Math.random() * foo的结果,而不仅仅是Math.random()

int x = (int) (Math.random() * (2 - 0));
int y = (int) (Math.random() * (4 - 0)); 

这是因为Math.random()总是返回0≤x<0的范围内的数字。 1,因此(int) Math.random()始终为0,零次为零。

答案 1 :(得分:0)

假设0是你的x范围 和0,4是你的范围

int x = (int) (Math.random() * (2 - 0 + 1)) + 0;
int y = (int) (Math.random() * (4 - 0 + 1)) + 0;