C# 而循环仅在连续两次满足条件后退出
编辑:哦,我的天啊,这就是复制/粘贴为你做的。我忘了删除循环外的那个。对不起大家。谢谢你的门把手冰 我对编程非常陌生,我正试图用我所知道的东西来创建一个井字游戏。我知道我很可能会用想象中最低效的方式去做,但我现在不想去解决这个问题,我只想在看到我“应该”怎么做之前,让我几乎完全靠自己完成的事情发挥作用 无论如何,我已经到了可以通过调用一个方法来打印网格的地步,现在我正试图找到一种方法,利用用户输入来标记网格位置,稍后我会将其转换为一个方法 但是,每当我运行程序并键入“1”时,例如,我的while循环会再次循环,我必须再次键入“1”,但这第二次它将执行我第一次期望的操作,并重新打印更新的网格 这是我的密码:C# 而循环仅在连续两次满足条件后退出,c#,C#,编辑:哦,我的天啊,这就是复制/粘贴为你做的。我忘了删除循环外的那个。对不起大家。谢谢你的门把手冰 我对编程非常陌生,我正试图用我所知道的东西来创建一个井字游戏。我知道我很可能会用想象中最低效的方式去做,但我现在不想去解决这个问题,我只想在看到我“应该”怎么做之前,让我几乎完全靠自己完成的事情发挥作用 无论如何,我已经到了可以通过调用一个方法来打印网格的地步,现在我正试图找到一种方法,利用用户输入来标记网格位置,稍后我会将其转换为一个方法 但是,每当我运行程序并键入“1”时,例如,我的while
namespace TicTacToe
{
class Program
{
static void Main(string[] args)
{
int userChoice = 0;
bool inputCheck = true;
string[,] grid = new string[3, 3];
grid[0, 0] = "[ ]";
grid[0, 1] = "[ ]";
grid[0, 2] = "[ ]";
grid[1, 0] = "[ ]";
grid[1, 1] = "[ ]";
grid[1, 2] = "[ ]";
grid[2, 0] = "[ ]";
grid[2, 1] = "[ ]";
grid[2, 2] = "[ ]";
Console.WriteLine(printGrid(grid));
Console.Write("Please choose a space with coordinates 1 (top left) to 9 (bottom right): ");
userChoice = int.Parse(Console.ReadLine());
while (inputCheck == true)
{
inputCheck = false;
Console.Write("Please choose a space with coordinates 1 (top left) to 9 (bottom right): ");
userChoice = int.Parse(Console.ReadLine());
if (userChoice == 1)
grid[0, 0] = "[X]";
else if (userChoice == 2)
grid[0, 1] = "[X]";
else if (userChoice == 3)
grid[0, 2] = "[X]";
else if (userChoice == 4)
grid[1, 0] = "[X]";
else if (userChoice == 5)
grid[1, 1] = "[X]";
else if (userChoice == 6)
grid[1, 2] = "[X]";
else if (userChoice == 7)
grid[2, 0] = "[X]";
else if (userChoice == 8)
grid[2, 1] = "[X]";
else if (userChoice == 9)
grid[2, 2] = "[X]";
else
inputCheck = true;
};
Console.WriteLine(printGrid(grid));
Console.ReadLine();
}
public static string printGrid(string[,] grid)
{
int rowLength = grid.GetLength(0);
int columnLength = grid.GetLength(1);
for (int i = 0; i < columnLength; i++)
{
for (int j = 0; j < rowLength; j++)
{
Console.Write("{0} ", grid[i, j]);
}
Console.WriteLine("\n"); //double line spacing
}
return null;
}
}
}
我似乎不明白为什么第二次有效,但第一次不行?我已经仔细检查了我是否正确地将我创建的bool放入了循环中
也许这与我在循环中的userChoice分配有关
编辑:哦,我的天啊,这就是复制/粘贴为你做的。我忘了删除循环外的那个。对不起大家。谢谢你的门把手冰 As@门把手冰 注意,您要求输入两次。当你第一次要求它的时候,你实际上并没有对它做任何事情,所以这就是为什么它似乎什么也没做,尽管这正是你编码它的目的 我建议您考虑一下实际需要什么:程序应该至少接收一次用户输入,然后验证它是一个有效位置。如果有效,则while循环退出
这正是一个干什么的条件;循环是为 因为你要了两次?一次在循环之前,一次在循环中,你调试过代码吗?因为我喜欢门把手冰 如上所述,您只需请求用户输入两次。与您的while循环无关。请尊重。