第一次执行循环时:为PlaatSnoepArray[0,0] and PlaatSnoepArray[0,1]
赋值
第二次执行循环时:为PlaatSnoepArray[1,0] and PlaatSnoepArray[1,1]
赋值 AND 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;
}
在for
循环之外创建array
:
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;
}
如何防止值设置回 0 ?
您需要将PlaatssnoepArray
的创建移到循环之外。目前,每次迭代都分配给自己的int[aantal,2]
instane,它超出了范围,一旦循环迭代结束就会被丢弃。
int[,] PlaatssnoepArray = new int[aantal,2];
for (int i = 0; i < aantal; i++)
{
// The rest of your code
}
你的数组声明在循环内,把它移到外面。
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;
}
您正在循环中初始化数组,将其移出
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)
}
把你的数组从循环中取出来。