使用方法创建数组,然后在main方法中使用该数组

时间:2016-06-25 19:20:51

标签: java arrays methods

我正在尝试使用我在整个程序中使用printGrid方法创建的数组。目前,我必须运行此方法,但由于嵌套在此方法中的math.random方法,值会更改,我不希望它。我只想运行一次并在整个方法中使用输出,这可能吗?

我尝试了什么 - 我试图返回mapArray的值(在代码中看到)并打印出来,我遇到了问题。我也试过用它自己的方法隔离math.random方法来计算cookie的值,但我的问题是它只返回一个值,我需要一个动态量,这取决于x / y的输入瓦尔。有什么建议吗?

public static char[][] printGrid(int x, int y) {
    // int [][] mapArray = new int [x][y];      // Gets the information to print the array

    mapArray = new char[x][y]; // Gets the information to print the array
    double cookies = (x * y) * (.1); // Calculates the number of cookies per x / y  input

    // Storing '.' in all values of the array
    for (int d = 0; d < x; d++) // Moved from below. 
    {
        for (int j = 0; j < y; j++) {
            mapArray[d][j] = '.';
        }

        System.out.println();
    }

    // Storing '0' in random values of the array and '<' at [0][0]
    int c = 0;
    for (c = 1; c <= cookies; c++) {

        int cookiesPrintColumn = (int)(cookies * Math.random());
        int cookiesPrintRow = (int)(cookies * Math.random());

        mapArray[cookiesPrintColumn][cookiesPrintRow] = 'O';
        mapArray[0][0] = '>';
    }

    // Copy loop from above to print the grid.
    for (int d = 0; d < x; d++) {
        for (int j = 0; j < y; j++) {
            System.out.print(mapArray[d][j]);
            return mapArray;
        }

        System.out.println();
    }
    return mapArray;
} // printGrid method close

2 个答案:

答案 0 :(得分:0)

使用返回值:

import package.ClassNane;
class Example {
    int x = 1;
    int y = 2;
    char[][] grid = ClassName.printGrid(x, y);
}

答案 1 :(得分:0)

如果您尝试在方法中创建一个数组,然后需要在整个程序中使用,例如在main中,您将无法直接使用该确切的数组,因为它将不在范围。但是,您可以在main中创建并初始化数组,等于方法的return语句。例如:

main() {
int[][] example;
example[][] = method(...);
}

int [][] method(...){
int[][] exampleArray = {1,2,3} // your random values here
return exampleArray;
}

因为您正在创建方法内部的实际数组,所以它不在main的范围内。然而,这将具有相同的确切值,因此随机数将是相同的,并且您可以继续将其用于程序的其余部分。