You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

C#矩阵元素检查与控制台符号展示时索引越界问题求助

解决System.IndexOutOfRangeException异常:矩阵遍历索引错误

你的代码触发索引越界异常的核心原因是:C#的数组(包括多维数组)索引从0开始,但你的循环变量从1开始,且终止条件写的是<= boardLength。当循环执行到最后一轮时,i和j的值等于矩阵的边长,而矩阵的最大有效索引是boardLength - 1,这就导致了非法访问。

修复后的代码

// Displays the gameboard requested
public static void DisplayBoard(int[,] gameboard)
{
    int boardLength = gameboard.GetLength(0); // 获取矩阵边长
    // 遍历矩阵并输出对应符号
    for (int i = 0; i < boardLength; i++)
    {
        for (int j = 0; j < boardLength; j++)
        {
            // 根据元素值选择输出符号
            if (gameboard[i, j] == 1) // 玩家1的X
            {
                Console.Write("X");
            }
            else if (gameboard[i, j] == 2) // 玩家2的O
            {
                Console.Write("O");
            }
            else // 空位置默认输出-
            {
                Console.Write("-");
            }
        }
        Console.WriteLine(); // 每行结束换行
    }
}

额外优化建议(可选)

可以用C#的switch表达式简化符号判断逻辑,让代码更简洁:

Console.Write(gameboard[i, j] switch
{
    1 => "X",
    2 => "O",
    _ => "-"
});

内容的提问来源于stack exchange,提问作者Ekalb Mchief

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.31 15:45:31