0

我尝试用方法制作一个多维数组。但我卡在这里;我的打印方法无法正常工作。它什么也没有显示,也没有错误。

public void bas() { // ========> print method
for (int a = 0; a < dizi.length; a++) {
    for (int b = 0; b < dizi[a].length; b++) {
        System.out.println(" dizi[" + n + "][" + m + "] = "
        + dizi[n][m]);
    }}}

它修复了。

public int[][] doldur() { // ========> fill method
for (int i = 0; i < dizi.length; i++) {
    for (int j = 0; j < dizi.length[i]; j++) { //problem in here: The type of the expression must be an array type but it resolved to int

    }
}
return dizi;

}

dizi.length[i] => dizi[i].length


我的其余代码:

public class ikiBoyutluDizi {
int n, m;
int[][] dizi = new int[n][m];

public int[][] diziBoyutu(int a, int b) {
    return dizi;
}

public int[][] doldur() { // ========> fill method
    for (int i = 0; i < dizi.length; i++) {
        for (int j = 0; j < dizi.length[i]; j++) {

        }
    }
    return dizi;
}

public void bas() { // ========> print method
    for (int a = 0; a < dizi.length; a++) {

        for (int b = 0; b < dizi[a].length; b++) {

            System.out.println(" dizi[" + n + "][" + m + "] = "

            + dizi[n][m]);

        }
    }
}

public static void main(String[] args) {
    ikiBoyutluDizi dizi2x = new ikiBoyutluDizi();
    dizi2x.diziBoyutu(2, 3);
    dizi2x.doldur();
    dizi2x.bas();
}

}

还有一件事; 你能检查我的打印方法吗?您认为修复填充方法后它是否正常工作?

4

2 回答 2

2

在有问题的行中 - 您应该使用dizi[i].length而不是dizi.length[i].

原因 isdizi是类型int[][],因此dizi[i]是类型int[]- 这是一个数组,但是dizi.length是一个int,并且您实际上试图访问 int 中的元素 - 这是不可能的!

您可能还想dizi[i] != null在这样做之前确保

public int[][] doldur() { // ========> fill method
for (int i = 0; i < dizi.length; i++) {
    for (int j = 0; dizi[i] != null && j < dizi[i].length; j++) { 
      //               ^                         ^
      //           not null                   dizi[i].length 
      //                                         instead of
      //                                      dizi.length[i]
      // Do domething

    }
}
于 2012-11-12T22:45:06.220 回答
0
for (int j = 0; j < dizi[i].length; j++)

dizi[i] 将在i索引处获取数组。和长度属性将得到它的长度。

于 2012-11-12T22:45:37.320 回答