在一个函数中创建一个数组并在另一个函数中读取它,而不需要返回语句
Posted
技术标签:
【中文标题】在一个函数中创建一个数组并在另一个函数中读取它,而不需要返回语句【英文标题】:Create an array in one function and read it in another without return statements 【发布时间】:2012-02-28 09:11:20 【问题描述】:我正在尝试在一种方法(或函数?或对象?附带问题 - 所有这些词之间有什么区别?)中创建一个数组,然后在另一种方法中使用它的长度(我将在其他地方也一样)。我的老师告诉我我不必返回数组,因为我只是在修改位置,所以数组不会被破坏或其他什么。我会在 main 中声明它,但是在我得到大小输入后我无法调整它的大小(我不认为?)。
有人关注这个吗?
public class Update
public static void main(String[] args)
System.out.println("This program will simulate the game of Life.");
createMatrix();
// birthAndLive();
printMatrix();
public static void createMatrix()
Scanner console = new Scanner(System.in);
System.out.println("Please input the size of your board.");
System.out.println("Rows:");
final int rows = console.nextInt();
System.out.println("Columns:");
final int columns = console.nextInt();
System.out.println("Please enter a seed:");
final long seed = console.nextLong();
boolean[][] board = new boolean[rows][columns];
Random seedBool = new Random(seed);
public static void printMatrix()
for (int i = 0; i < board.length; i++)
for (int j = 0; j < board[i].length; j++)
if (board[i][j] == false)
System.out.print(" - ");
else
System.out.print(" # ");
System.out.println();
【问题讨论】:
下次别忘了加一个Java标签。 【参考方案1】:您可以通过将board
传递给您的打印函数来解决此问题。
class Update
public static void main(String[] args)
System.out.println("This program will simulate the game of Life.");
createMatrix();
// birthAndLive();
printMatrix();
public static void createMatrix()
Scanner console = new Scanner(System.in);
System.out.println("Please input the size of your board.");
System.out.println("Rows:");
final int rows = console.nextInt();
System.out.println("Columns:");
final int columns = console.nextInt();
System.out.println("Please enter a seed:");
final long seed = console.nextLong();
boolean[][] board = new boolean[rows][columns];
Random seedBool = new Random(seed);
printMatrix(board);
public static void printMatrix(boolean[][] board)
for (int i = 0; i < board.length; i++)
for (int j = 0; j < board[i].length; j++)
if (board[i][j] == false)
System.out.print(" - ");
else
System.out.print(" # ");
System.out.println();
不过,我不知道您的老师允许您更改多少代码。如果所有函数都需要从main
调用,那么您要么必须将数组创建代码放在主函数中,要么必须求助于返回语句或类变量。
【讨论】:
她说我们不允许使用任何类级别的变量。这让我很生气,因为我觉得我可以通过其他方式轻松做到这一点。 啊,在那种情况下,我想她希望你将板子作为参数传递给你的函数。我会编辑我的帖子。 是的。将板子传递给函数是这里的方法。以上是关于在一个函数中创建一个数组并在另一个函数中读取它,而不需要返回语句的主要内容,如果未能解决你的问题,请参考以下文章
在useEffect中创建一个异步函数,并在函数的while循环中使用await,似乎不起作用