我有一个任务是用两个方法和二维数组实现简单的java代码。 但是我找不到一些简单的错误。 这是行
的getArray(NC);
“nc”下划线标题为“可能尚未初始化”
public static void main (String[] args) {
int nc[][];
getArray(nc);
for (int i=0;i<nc.length;i++)
{
System.out.println();
for(int k=0;k<nc.length;k++)
{
System.out.print(nc[k]+", ");
}
}
}
static void getArray(int[][]nc){
for (int i=0;i<nc[0].length;i++)
{
for(int k=0;k<nc.length;k++)
{
nc[k][i]=1+(int)(Math.random()*100);
}
}
}
}
如果我喜欢这个
public static void main(int nc [] []){
它告诉我没有主要方法。感谢。
答案 0 :(得分:1)
int nc[][];
以上行仅声明变量nc
,它是int类数组的类型。但它没有初始化任何数组。变量的值为null
。
所以你需要创建一个数组:
int[][] nc = new int[10][10];
例如,声明了nc变量,并为变量分配了一个10x10的二维数组(用0填充)。
public static void main (int nc[][])
这不会声明一个main方法,因为main方法必须将一个Strings数组作为唯一参数。这个字符串数组包含执行它时传递给程序的所有参数。例如:
java com.foo.bar.MyApp hello world
会使用包含com.foo.bar.MyApp
和"hello"
的数组调用类"world"
的main方法。
答案 1 :(得分:1)
在编写方法时,getArray(int[][])
会收到一个数组并将其填满。但是,如果您查看main
方法的开头,则永远不会对其进行初始化。
您可以在main
方法中执行此操作:
public static void main (String[] args) {
int nc[][] = new int [10][10]; // Or any other size
getArray(nc);
...
然而,这并不像Java代码那样“感觉” - 感觉就像C.在Java中,因为我们有垃圾收集,并且不需要担心返回在方法中分配的对象,所以你可以重写{{ 1}}处理(并返回)分配:
getArray