令牌“;”上的语法错误

时间:2014-04-09 00:15:46

标签: java arrays syntax-error

我正在尝试在没有main方法的类中创建二维数组。 我可以使用代码

成功初始化数组
double[][] nameArray = new double[m][n];  //m、n is the size

但是当我尝试为数组赋值

nameArray[0][0] = 0;

出现错误并显示“;”语法错误

double[][] nameArray = new double[m][n];

但是,此代码适用于我的main方法。我很困惑,想知道出了什么问题?

任何人都可以回答我的问题吗?真的很感激。

3 个答案:

答案 0 :(得分:6)

这只是非法语法。您可以在方法之外初始化数组,但不能将其他语句放在方法之外,例如在数组中设置特定值。请考虑将该语句添加到构造函数中。

答案 1 :(得分:0)

您可以在类中初始化数组,甚至可以使用初始值初始化,但是一旦创建变量,您就无法执行将分配值的代码。有些语言可以实现,但Java不是其中之一。

答案 2 :(得分:0)

您是否在询问如何在Java中初始化2D数组?

import java.util.*;

public class ArrayInit {
    public int[][] oneArray = { { 0, 0 }, { 0, 1 }, { 1, 0 }, { 1, 1 } };
    public int[][] twoArray = new int[4][2];
    public int[][] threeArray = new int[4][2];
    {
        // you don't usually see it done this way.
        threeArray[0][0] = 0;
        threeArray[0][1] = 0;
        threeArray[1][0] = 0;
        threeArray[1][1] = 1;
        threeArray[2][0] = 1;
        threeArray[2][1] = 0;
        threeArray[3][0] = 1;
        threeArray[3][1] = 1;
    }

    public ArrayInit() {
        // This looks cumbersome too
        twoArray[0][0] = 0;
        twoArray[0][1] = 0;
        twoArray[1][0] = 0;
        twoArray[1][1] = 1;
        twoArray[2][0] = 1;
        twoArray[2][1] = 0;
        twoArray[3][0] = 1;
        twoArray[3][1] = 1;
    }

    public static void main( String[] args ) {
        ArrayInit ai = new ArrayInit();
        System.out.println( Arrays.deepToString( ai.oneArray ) );
        System.out.println( Arrays.deepToString( ai.twoArray ) );
        System.out.println( Arrays.deepToString( ai.threeArray ) );
    }
}

您可以在声明时完全初始化数组,例如" oneArray"以上。或者,您可以在声明时为阵列指定一个特定的大小,例如" twoArray"以上。在声明时,你不能给数组赋一个特定的大小并初始化它的一部分。