gpt4 book ai didi

java - 将二维数组从一种方法传递到另一种方法

转载 作者:行者123 更新时间:2023-11-29 05:51:06 25 4
gpt4 key购买 nike

编程语言:Java

编辑器:Vim

我一直在尝试做一个包含二维数组的作业。我一直在努力解决这个问题,因为这是我第二次使用任何类型的数组。不管怎样,我只是有一些问题,我希望这里有人能为我解答。

1) 这是将 double 组传递给另一个方法的方式吗?

这是我的 boolean 数组:

boolean[][] TempGrid = new boolean[GRIDSIZE][GRIDSIZE];

这就是我一直试图通过它的方式。

countNeighbors(TempGrid[][]);

这是接受数组的方法:

 public static int countNeighbors ( final boolean[][] grid, final int row, final int col )

然而,当我编译时,我得到一个错误提示:

error: '.class' expected
countNeighbors(TempGrid[][]);
^
1 error

我对 .class 错误做了一些研究,例如:

- http://www.dreamincode.net/forums/topic/70299-class-expected-error/

- http://stackoverflow.com/questions/12309220/class-error-in-java-applet

- http://www.daniweb.com/software-development/java/threads/213357/pass-2-dimensional-array-into-method

和各种其他网站/论坛。他们提供的解决方案要么不起作用,要么导致我的程序出现更多问题。

顺便说一句,这是整个方法:

 public static void genNextGrid ( boolean[][] grid )
{

boolean[][] TempGrid = new boolean[GRIDSIZE][GRIDSIZE];

TempGrid[GRIDSIZE][GRIDSIZE] = grid[GRIDSIZE][GRIDSIZE];

countNeighbors(TempGrid);

for(int row = 1; row < 18; row++)
{

countNeighbors(row);

for(int col = 1; col < 18; col++)
{

countNeighbors(col);

if(n == 3)
{
TempGrid[row][col] = true;
}
else if(n == 2 || n == 3)
TempGrid[row][col] = true;
}
else
{
TempGrid[row][col] = false;
}

}
}


}

我试图从 countNeighbors(TempGrid[][]); 中删除 [][],所以它看起来像:

countNeighbors(TempGrid);

但给了我 3 个错误

 error: method countNeighbors in class Life cannot be applied to given types;
countNeighbors(TempGrid);
^
required: boolean[][],int,int
found: boolean[][]
reason: actual and formal argument lists differ in length


error: method countNeighbors in class Life cannot be applied to given types;
countNeighbors(row);
^
required: boolean[][],int,int
found: int
reason: actual and formal argument lists differ in length


error: method countNeighbors in class Life cannot be applied to given types;
countNeighbors(col);
^
required: boolean[][],int,int
found: int
reason: actual and formal argument lists differ in length

-提前感谢您的帮助

最佳答案

是的,第二种方式是正确的方式,即

 countNeighbors(TempGrid);

你后来的错误是说你需要的参数数量不匹配,因为

public static int countNeighbors ( final boolean[][] grid, final int row, final int col )

countNeighbors 方法需要 3 个参数,而您只传递 1 个。验证您需要传递给此方法的内容,如果不需要则将其删除。它还返回一个int,您需要将它分配回某些东西以供进一步使用。我设想它是变量 n,您打算将其用于。

你需要调用最内层循环中的方法作为

for(int row = 1; row < 18; row++) {
for(int col = 1; col < 18; col++) {
n = countNeighbors(TempGrid,row,col);
...

}
}

关于java - 将二维数组从一种方法传递到另一种方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13814954/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com