无效的等级说明符:expected ','或& # 39;]“

本文关键字:说明符 expected 无效 | 更新日期: 2023-09-27 18:06:50

我正在做作业。我被分配创建一个井字游戏应用程序,我已经完成了,但是有一个小错误,我想我忽略了一些东西,但是我不能弄清楚,需要一些新的眼睛来检查它,因为我认为我看它太久了,错过了一个大的概念。

        Random r = new Random();//Creates the number generator.
        int [][] numbers = new int [3][3]; //creates a 3x3 integer grid.
        for (int i = 0; i< numbers.Length; i++){
        for (int j=0;j<numbers[i].Length;j++){
        numbers[i][j] = r.Next(2);//Traverses the array and inputs a number between 0 and 1 here.

}}

        Console.WriteLine("%d|%d|%d'n",numbers[0][0],numbers[0][1],numbers[0][2]);
        Console.WriteLine("------");
        Console.WriteLine("%d|%d|%d'n",numbers[1][0],numbers[1][1],numbers[1][2]);
        Console.WriteLine("------");
        Console.WriteLine("%d|%d|%d'n",numbers[2][0],numbers[2][1],numbers[2][2]);

错误在第二行。也许我写了int [][] numbers = new int [][];格式错了吗?请帮我找出是哪里出了问题。谢谢你。

无效的等级说明符:expected ','或& # 39;]“

在声明数组时尝试这样做:

int [,] numbers = new int[3,3];

你需要改变你对数组的访问fx:

numbers[i,j] = r.Next(2);

要迭代数组,可以使用numbers.GetLength(index)方法代替numbers.Lengthnumbers[i].Length

在你的例子中应该是这样的:

for (int i = 0; i < numbers.GetLength(0); i++)
{
    for (int j = 0; j < numbers.GetLength(1); j++)
    {
        ...

编辑:如果你真的想保持你的数组的数组(也称为锯齿数组),你可以这样初始化它:

 int[][] numbers = new int[3][] 
                   {   
                       new int[3],
                       new int[3],
                       new int[3]
                   };