Java 2d Array If语句

时间:2015-11-11 19:39:56

标签: java arrays 2d helper

我制作了一个二维数组来显示地图,我很难做到这样,如果随机数“1”可以放在数组中的任何地方,除了[0] [0],我试过了很多事情都有奇怪的结果。

public static void main (String[] args)
{
    int rnd = (int) (Math.random()*4);
    int[][]map;
    int rows = 4;
    int columns = 4;
    map = new int[rows][columns];
    map[rnd][rnd] = 1;

    for(int i=0; i<map.length; i++){
        for(int j=0; j<map[0].length; j++){    
                System.out.print(map[i][j] + " ");
        }
        System.out.println("");         
    }
    }
}

任何人都有办法做到这一点?

2 个答案:

答案 0 :(得分:1)

一种方法是选择两个随机数并循环,直到它们都不为零。

youtube-multiple.dl -h

另一种方法是从1到15中选择一个随机数,然后使用除法和余数。

Random random = new Random();
int i, j;
do {
    i = random.nextInt(4);
    j = random.nextInt(4);
} while (i == 0 && j == 0);
int[][] map = new int[4][4];
map[i][j] = 1;

第二个版本的功能并不明显,因此可能需要注释来解释它。

答案 1 :(得分:0)

现在,您对两个维度使用相同的随机数,因此(0,0),(1,1),(2,2)或(3,3)可以设置为{{1 },但没有其他地方。

选择2个不同的随机数,每个维度一个。最好创建一个1对象,这样您就可以调用nextInt(4)来获得所需的范围。在java.util.Random循环中,如果两个数字都是while,请再次选择2个不同的随机数。