首次执行循环:
值已分配给PlaatSnoepArray[0,0] and PlaatSnoepArray[0,1]
。
第二次循环执行:
值已分配给PlaatSnoepArray[1,0] and PlaatSnoepArray[1,1]
并且PlaatSnoepArray[0,0]
和PlaatSnoepArray[0,1]
的值设置为0.
第三次循环执行:
值已分配给PlaatSnoepArray[2,0]
和PlaatSnoepArray[2,1]
。
并且PlaatSnoepArray[1,0]
和PlaatSnoepArray[1,1]
的值设置为0
。
如何防止将值设置回0?
static Random Rangen = new Random();
static void PlaatsSnoep(int aantal)
{
for (int i = 0; i < aantal; i++)
{
int SnoepX = Rangen.Next(25, 94);
int SnoepY = Rangen.Next(3, 23);
Console.SetCursorPosition(SnoepX, SnoepY);
Console.WriteLine("0");
int[,] PlaatssnoepArray = new int[aantal,2];
PlaatssnoepArray[i, 0] = SnoepX;
PlaatssnoepArray[i, 1] = SnoepY;
}
答案 0 :(得分:1)
在array
循环之外创建for
:
int[,] PlaatssnoepArray = new int[aantal,2];
for (int i = 0; i < aantal; i++)
{
int SnoepX = Rangen.Next(25, 94);
int SnoepY = Rangen.Next(3, 23);
Console.SetCursorPosition(SnoepX, SnoepY);
Console.WriteLine("0");
PlaatssnoepArray[i, 0] = SnoepX;
PlaatssnoepArray[i, 1] = SnoepY;
}
答案 1 :(得分:1)
如何防止将值设置回0?
您需要在循环外移动PlaatssnoepArray
的创建。目前,每次迭代都会分配给它自己的int[aantal,2]
实例,该实例超出范围并在循环迭代结束后立即被抛弃。
int[,] PlaatssnoepArray = new int[aantal,2];
for (int i = 0; i < aantal; i++)
{
// The rest of your code
}
答案 2 :(得分:1)
你的数组声明在循环内部,将其移到外面。
int[,] PlaatssnoepArray = new int[aantal,2];
for (int i = 0; i < aantal; i++)
{
int SnoepX = Rangen.Next(25, 94);
int SnoepY = Rangen.Next(3, 23);
Console.SetCursorPosition(SnoepX, SnoepY);
Console.WriteLine("0");
PlaatssnoepArray[i, 0] = SnoepX;
PlaatssnoepArray[i, 1] = SnoepY;
}
答案 3 :(得分:0)
将你的阵列从循环中移开..
答案 4 :(得分:0)
您正在循环中初始化数组,将其移出
static Random Rangen = new Random();
static void PlaatsSnoep(int aantal)
{
int[,] PlaatssnoepArray = new int[aantal,2];
for (int i = 0; i < aantal; i++)
{
int SnoepX = Rangen.Next(25, 94);
int SnoepY = Rangen.Next(3, 23);
Console.SetCursorPosition(SnoepX, SnoepY);
Console.WriteLine("0");
PlaatssnoepArray[i, 0] = SnoepX;
PlaatssnoepArray[i, 1] = SnoepY;
}
}
那么使用List<Point>()
代替数组呢?
List<Point> PlaatssnoepList = new List<Point>();
for (int i = 0; i < aantal; i++)
{
Point p = new Point(Rangen.Next(25, 94), Rangen.Next(3, 23));
Console.SetCursorPosition(p.X, p.Y);
Console.WriteLine("0");
PlaatssnoepList.Add(p)
}