二维数组java

时间:2014-09-13 16:33:51

标签: java arrays

无法理解我做错了什么:(我想用空格填充我的数组。但是收到错误 线程" main"中的例外情况java.lang.Error:未解决的编译问题:     j无法解析为变量

at Field.space(Field.java:11)
at Main.main(Main.java:6)

这是我的简单代码:

public class Main {

    public static void main (String[] args){
        Field field = new Field();
        field.space();
    }
}


public class Field {
    private static final int ArraySize = 3;
    private char spacesymbol = ' ';
    private char[][] array = new char [ArraySize][ArraySize];

    public void space() {
        for (int i=0; i<ArraySize; i++){
            for (int j=0; j<ArraySize; j++)
                array[i][j]= spacesymbol;
            System.out.println("[" + array[i][j] + "]");
        }

    }
}

5 个答案:

答案 0 :(得分:2)

您忘记了第二个for循环的大括号,将其更改为:

for (int j=0; j<ArraySize; j++) {
    array[i][j]= spacesymbol;
    System.out.println("[" + array[i][j] + "]");
}

答案 1 :(得分:2)

您的第二个for循环不使用花括号,因此它只包含紧跟for语句后的第一个语句。所以只有一行

array[i][j]= spacesymbol;

实际上是变量j的范围。之后的行在for循环之外,因此变量j不再存在。将您的代码更改为此以修复此错误:

for (int i=0; i<ArraySize; i++){
    for (int j=0; j<ArraySize; j++) {
        array[i][j]= spacesymbol;
        System.out.println("[" + array[i][j] + "]");
    }
}

出于这个原因,我总是建议对任何for块使用花括号。

答案 2 :(得分:0)

在第二次for循环之后你错过了大括号。

public void space() {
  for (int i=0; i<ArraySize; i++){
    for (int j=0; j<ArraySize; j++) {
      array[i][j]= spacesymbol;
      System.out.println("[" + array[i][j] + "]");
    } 
  }
}

答案 3 :(得分:0)

你忘记了for for循环的大括号:

for (int i=0; i<ArraySize; i++){
    for (int j=0; j<ArraySize; j++)
        array[i][j]= spacesymbol;
    System.out.println("[" + array[i][j] + "]"); // 'j' who?
}

如果没有它们,它只会执行它之后的下一行(array[i][j]= spacesymbol;),当我们执行System.out.println("[" + array[i][j] + "]");时,它将不知道我们正在讨论哪个j

所以新代码看起来像这样:

for (int i=0; i<ArraySize; i++){
    for (int j=0; j<ArraySize; j++){
        array[i][j]= spacesymbol;
        System.out.println("[" + array[i][j] + "]");
    }
}

答案 4 :(得分:0)

在第二个内部for循环之后,你缺少大括号