我正在尝试使用我在整个程序中使用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
答案 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的范围内。然而,这将具有相同的确切值,因此随机数将是相同的,并且您可以继续将其用于程序的其余部分。