EPIDEMIASH
@EPIDEMIASH
Человек швейцарский нож

Почему идет пропуск итерации вложенного цикла?

В продолжении вопроса.

Ребят впервые вообще пишу, что-то похожее.
Общая задача - построение строки запроса такого вида:

text data01 text 1 2 3 4 5

Я генерирую эти строки, указывая разные параметры, для примера
- первый параметр, это количество элементов data (который начинается всегда с 01 и до 999)
- второй параметр это диапазон цифр к примеру от 1 до 5

По простому условию в цикле, с первым параметром я легко генерирую строки:

text data01
text data02
text data03
...
text data10
text data11
text data12


Второй параметр у меня используется, для вычисления элементов массива и их чередования.
То есть, если отдельно выводить их, то все гуд. Чередование такое(первый элемент смещается в конец, при каждой итерации:

1 2 3 4 5 
2 3 4 5 1
3 4 5 1 2
4 5 1 2 3
5 1 2 3 4


Моя задача, скрестить эти два цикла и совместить строки. Вот мой код:

int start = 1, last = 5;
int[] arr = Enumerable.Range(start, last - start + 1).ToArray();
int count = arr.Count();
int n = 5; // количество data


for (int j = 1; j < n; j++)
{
textBox.AppendText("text data0" + j);
    for (int i = 0; i < count; i++) {
        textBox.AppendText($"{ arr[(i + j) % count]}");
}
}


Так я получаю, что мне нужно. Но первая итерация идет неверно (то что начинается с 0, пропускает итерацию). Если я дописываю условие для 0, эта итерация не отображается, но 2 цикл, который выводит чередование массива, начинается со 2 итерации.

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

text data00     1 2 3 4 5
text data01     2 3 4 5 1
text data02     3 4 5 1 2
text data03     4 5 1 2 3
text data04     5 1 2 3 4
text data05     1 2 3 4 5


А хочу:

text data01     1 2 3 4 5
text data02     2 3 4 5 1
text data03     3 4 5 1 2
text data04     4 5 1 2 3
text data05     5 1 2 3 4


Как пропустить 1 итерацию цикла, где 0 получает строку 1 2 3 4 5
но при этом 2й итерации цикла, начать тоже со строки 1 2 3 4 5, а не с 2 3 4 5 1?
  • Вопрос задан
  • 120 просмотров
Решения вопроса 1
EPIDEMIASH
@EPIDEMIASH Автор вопроса
Человек швейцарский нож
$"name{arr[(i + j - 1) % count]
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы