gpt4 book ai didi

Java:使用方法实现多维数组时出现一些错误

转载 作者:行者123 更新时间:2023-12-01 18:57:48 25 4
gpt4 key购买 nike

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

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();
}

}

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

最佳答案

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

原因是 dizi 的类型为 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

}
}

关于Java:使用方法实现多维数组时出现一些错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13352816/

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