2014-10-02 6 views
-4

Я пытаюсь написать цикл for, а затем выбрать каждый третий номер и написать строку на консоли.выберите каждое третье число в for-loop

Это то, что я пытался до сих пор:

for (int i = 1; i <=52; i++) 
{ 
    if (something??) 
    { 
     Console.WriteLine("Week" + i); 
    } 
} 

Я также пытаюсь написать это следующим образом:

Week 1    Week 4   Week 7 
Week 10    Week 13   Week 16 
Week 19    Week 23   Week 25 

и т.д. до 52 ...

небольшая помощь в правильном направлении была бы очень приятной!

EDIT:

Жаль, что я имел в виду каждый третий номер ...

Большое спасибо за помощь я был немного застрял на некоторое время там, теперь я должен выяснить, как получить Weeks к показать, как указано выше .. :)

+9

Вы сказали, что каждый пятый номер, но вы увеличиваете ваши номера с '3'? И '23' не должно быть' 22'? Потому что '19 + 3 = 22' .. –

+1

Вам нужно каждую пятую или каждую третью неделю? Это непонятно. – HimBromBeere

+0

Извините, что у меня сейчас нет.извините :( – user3727466

ответ

7

Вы можете попробовать это:

for (int i = 1; i <=52; i+=3) 
{ 

} 

Вам не нужно использовать if заявление. Вы можете просто изменить шаг вашего цикла, от 1 (i++), до нужного вам, 3 (i+=3).

3

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

Есть 2 варианта

for (int i = 1; i <=52; i+=3) 

ИЛИ

for (int i = 1; i <=52; i++) 
      { 
       if (i % 3 == 1) 
       { 
        Console.WriteLine("Week" + i); 
       } 
      } 
+0

ах остальная проверка, ват чемпион – liquidsnake786

0

Вы можете использовать целое число, как счетчик, так что вы знаете, когда у него есть завершил оператор if 5 раз. Если он был в 5 раз, вы можете запустить код и сбросить счетчик.
Это вы искали?

Для второй части вашего вопроса я согласен с Кристосом.

Надеется, что это помогает вам

1

решения Простейшего это увеличить переменный в цикл на 5 или 3?

for (int i = 0; i <=52; i+=5) 
{ 
    Console.WriteLine("Week" + i); 
} 
+0

Это оке знает, что такое! –

0

Если вы заинтересованы в получении LINQ вы могли бы сделать:

IEnumerable<string> thirdWeeks = Enumerable.Range(0, 52) 
    .Where((week, index) => index % 3 == 0) 
    .Select(week => string.Format("Week {0}", week + 1)); 
string allWeeksInOneLine = String.Join(Environment.NewLine, thirdWeeks); 
Console.Write(allWeeksInOneLine); 

Если вы хотите три недели, в онлайн-групп, таких как Week 1 Week 4 Week 7:

var weeksGrouped = thirdWeeks 
    .Select((week, index) => new { week, index }) 
    .GroupBy(x => x.index/3) 
    .Select(g => String.Join("\t", g.Select(x => x.week))); 
string allWeeksGrouped = String.Join(Environment.NewLine, weeksGrouped); 
Console.Write(allWeeksGrouped); 

Результат:

Week 1 Week 4 Week 7 
Week 10 Week 13 Week 16 
Week 19 Week 22 Week 25 
Week 28 Week 31 Week 34 
Week 37 Week 40 Week 43 
Week 46 Week 49 Week 52 
+0

Спасибо! Я буду смотреть на это! – user3727466

+0

@ user3727466: обратите внимание, что я отредактировал его, чтобы показать вам, как вы можете получить трехнедельный срок. –

Смежные вопросы