无法理解我做错了什么:(我想用空格填充我的数组。但是收到错误 线程" 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] + "]");
}
}
}
答案 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循环之后,你缺少大括号