如何在 for 循环中为数组赋值



第一次执行循环时:为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)
    }

把你的数组从循环中取出来。

相关内容

  • 没有找到相关文章

最新更新