猿问

仅在声明最后一个数组时出现的神秘错误

声明数组时,IDE (Eclipse) 给我一个错误。但是,如果我在之后立即声明另一个数组,错误就会像魔法一样转移到下一个数组。我可以尝试添加越来越多的数组,但我只会推迟不可避免的事情。这给我留下了两个问题:为什么会发生错误以及如何修复它?


import java.util.Arrays; 

public class BattleshipGrid {

    private char[][] arr1 = new char[10][10];

    private char[][] arr2 = new char[10][10];

    private char[][] arr3 = new char[10][10]; 

    private char[][] arr4 = new char[10][10];//"Syntax error on token ";", { expected

    for (char[] i: arr2) {

        for(char j: i) {

            i[j]='X';

        }

    }

    public static void main (String[] args) {

    }

}


慕容3067478
浏览 128回答 3
3回答

慕哥6287543

您的 for 循环必须驻留在某种方法中。

至尊宝的传说

For 循环本身不能在一个类中。类只是声明的地方,而不是代码的地方。Java 中的代码仅在方法中。所以你有2个解决方案。要么将您的代码放在main方法中:import java.util.Arrays; public class BattleshipGrid {    private static char[][] arr1 = new char[10][10]; // Made it static so that         // it would be bound to the class object itself, so that you can see         // it from the main method which is also static and bound to the class         // object    private static char[][] arr2 = new char[10][10];    private static char[][] arr3 = new char[10][10];     private static char[][] arr4 = new char[10][10];    public static void main (String[] args) {        for (char[] i: arr2) {            for(char j: i) {                i[j]='X';            }        }    }}另一个(更好)的解决方案是在 main 方法中创建一个类的实例。import java.util.Arrays; public class BattleshipGrid {    private char[][] arr1 = new char[10][10];    private char[][] arr2 = new char[10][10];    private char[][] arr3 = new char[10][10];     private char[][] arr4 = new char[10][10];    public void initializeTheGrid() {        for (char[] i: arr2) {            for(char j: i) {                i[j]='X';            }        }    }    public static void main (String[] args) {        BattleshipGrid grid = new BattleshipGrid();        grid.initializeTheGrid();    }}

长风秋雁

尝试这样的事情:public class BattleshipGrid{    private char[][] arr1 = new char[10][10];    private char[][] arr2 = new char[10][10];    private char[][] arr3 = new char[10][10];     private char[][] arr4 = new char[10][10];    public static void main ( String[] args )    {        for ( char[] i: arr2)        {            for ( char j: i)            {                j = 'X';            }        }    }}
随时随地看视频慕课网APP

相关分类

Java
我要回答