我尝试编写for循环,然后选择每个第三个数字并在控制台上写一行。
这是我到目前为止所尝试的:
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 ......
正确方向的一点帮助真的很棒!
编辑:
对不起我的意思是每三个号码......
非常感谢你的帮助我在那里呆了一段时间,现在我必须弄清楚如何让Weeks如上所示.. :)
答案 0 :(得分:7)
你可以尝试这个:
for (int i = 1; i <=52; i+=3)
{
}
您不需要使用if
语句。您只需将循环步骤从1(i++
)更改为您需要的步骤3(i+=3
)。
答案 1 :(得分:3)
对于你是否想要第3或第5个元素,似乎有些困惑。无论哪种方式,方法都是相同的,只需用3替换5
有两个选项
for (int i = 1; i <=52; i+=3)
OR
for (int i = 1; i <=52; i++)
{
if (i % 3 == 1)
{
Console.WriteLine("Week" + i);
}
}
答案 2 :(得分:1)
最简单的解决方案是将for循环中的变量增加5或3?
for (int i = 0; i <=52; i+=5)
{
Console.WriteLine("Week" + i);
}
答案 3 :(得分:0)
您可以使用整数作为计数器,以便您知道它何时完成if语句5次。如果已经5次,则可以运行代码并重置计数器 这是你在找什么?
对于你提问的第二部分,我同意Christos。
希望这有助于你
答案 4 :(得分: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