【发布时间】:2015-03-18 14:11:41
【问题描述】:
我目前很难交换两个变量。一旦用户输入空白单元格旁边的值,我希望能够交换值 为我非常混乱的代码道歉,我只是在学习 C#。
static void SwapNums(string[,] theBoard)
{
int col, row;
string swap;
string number = ReadNumber();
for (col = 0; col if (theBoard[col, row] == "")
{
theBoard[col, row] = number;
}
}
}
}
}
}
}
} < 6; col++)
{
for (row = 0; row < 6; row++)
{
if (theBoard[col,row] == number)
{
if (theBoard[col + 1, row] == "-" || theBoard[col - 1, row] == "-" || theBoard[col, row + 1] == "" || theBoard[col, row - 1] == "-")
{
swap = theBoard[col, row];
theBoard[col, row] = "";
for (col = 0; col < 6; col++)
{
for (row = 0; row < 6; row++)
{
if (theBoard[col, row] == "")
{
theBoard[col, row] = number;
}
}
}
}
} if (theBoard[col, row] == "")
{
theBoard[col, row] = number;
}
}
}
}
}
}
}
}
}
}
}
目前,此代码正在将空白单元格替换为用户输入的内容,但不会将包含数字的单元格替换为 p。
【问题讨论】:
-
不清楚你在问什么。您的示例有 5 列,在您的代码中有 7 列。如果用户输入“3”,应该会发生帽子?
-
一些提示:首先在纸上做,用手,观察你在做什么。然后想想代码、变量、结构、算法。然后编码。然后使用调试器查看您的代码实际做了什么。
-
不需要if语句内部的嵌套for循环。
-
@DrKoch 对不起,这个例子展示了它的样子。如果用户输入 3,则不会发生任何事情,因为该数字不在“-”旁边。
-
if (theBoard[col + 1, row] == "-" || theBoard[col - 1, row] == "-" || theBoard[col, row + 1] = = "-" || theBoard[col, row - 1] == "-") 告诉您哪个单元格包含“-”,但是将所有逻辑检查放在一起会掩盖它是哪个单元格。