Как пройти цикл for каждые x раз - PullRequest
0 голосов
/ 12 июня 2019

У меня есть цикл for различной длины в зависимости от элементов в базе данных, я пытаюсь выяснить, как разделить цикл дальше на каждые 5 циклов, распечатать вывод и затем перейти к новой строке, не дублируя результат.

Что я мог придумать, так это то, что мне нужно реализовать модуль.

c #

using System;

public class Program
{
    public static void Main()
    {

        int v = 0;
        for(int i=0; i < 20; i++){
            if(i % 5 == 0){
                Console.WriteLine(v);
                v = v + 1;
            }
            Console.WriteLine("Done");
        }

    }
}

То, что я получаю, это:

1
Done
Done
Done
Done
Done
2
Done
Done
Done
Done
Done
3
Done
Done
Done
Done
Done
4
Done
Done
Done
Done
Done

Я пытаюсь достичь:

1
2
3
4
5
Done
6
7
8
9
10
Done
11
12
13
14
15
Done
16
17
18
19
20
Done

Ответы [ 5 ]

0 голосов
/ 12 июня 2019

Поскольку вы хотите проходить через цикл каждый раз, когда я думал, что что-то вроде этого может быть полезным:

using System;

public class Program
{
    public static void Main()
    {

        int v = 0;
        int i = 0;
        while(i < 20){
            for(int j=0 ; j<5 ; j++){
                i++;
                Console.WriteLine(i);
            }
            Console.WriteLine("Done");
            v++;
        }

    }
}

Я не знаю, что вы хотите сделать сv но здесь оно совпадает со значением v в вашем коде.

0 голосов
/ 12 июня 2019

Это будет работать в вашем случае

static void Main(string[] args)
{
    int v = 1;
    for (int i = 1; i <= 20; i++)
    {
        Console.WriteLine(v);
        v = v + 1;
        if (i % 5 == 0)
        {
            Console.WriteLine("Done");
        }
    }
}
0 голосов
/ 12 июня 2019

Это должно работать на то, что вы пытаетесь сделать.

for( auto i = 0; i < 20; ++i)
{
    Console.WriteLine($"{i+1} ");
    if((i%5) == 0)
    {
          Console.WriteLine("Done");
    }
}
0 голосов
/ 12 июня 2019

Это делает то, что вы хотите:

for (int i = 1; i <= 20; i++)
{
    Console.WriteLine(i);
    if (i % 5 == 0)
    {
        Console.WriteLine("Done");
    }
}

Это дает:

1
2
3
4
5
Done
6
7
8
9
10
Done
11
12
13
14
15
Done
16
17
18
19
20
Done
0 голосов
/ 12 июня 2019

Это цикл, который вы хотите:

for(int i=0; i < 20; i++){
    if(i % 5 == 0){
        Console.WriteLine("Done");
    }
    Console.WriteLine((i + 1));
}

Console.WriteLine("Done");
...