首页 > 解决方案 > 我需要帮助理解通过二维 (2D) 数组循环

问题描述

我正在尽我所能理解二维数组的值被打印出来我曾经嵌套for循环以打印出我的值,但我没有打印出行和列,而是故意打印出 [column , column] 只是为了看看将返回什么值。我不想修复代码作为答案我想为某人解释

有人可以解释我为什么要打印 159 的结果。我理解在第一个循环中,编译器在列的第一行中获得第一个值,但是在下一个循环迭代中,为什么它打印出 5 而不是 4?

我得到第一个循环目的,即每 1 个循环为行,行执行列循环 3 次。

  public static void Main(string[] args)
        {
            int[,] _tacToe = new int[3, 3]
            {
              {1,2,3} ,
              {4,5,6},
              {7,8,9}
            };
            for (int row = 0; row < 3; row++)
            {
                Console.WriteLine("gggg");
                for (int column = 0; column < 3; column++)
                {
                    Console.Write(_tacToe[column, column]);
                }
                Console.WriteLine();
            }
            Console.ReadLine();

结果:

gggg
159
gggg
159
gggg
159

标签: c#

解决方案


因为您同时使用column两个索引,所以同时增加行和列索引

for (int column = 0; column < 3; column++)
{
    Console.Write(_tacToe[column, column]);
}

/*
column = 0 _tacToe[0, 0] -> prints 1
column = 1 _tacToe[1, 1] -> prints 5
column = 2 _tacToe[2, 2] -> prints 9
*/

推荐阅读