C#の繰り返し処理について記述します。
検証内容は1から100までをループによりコンソールに出力させます。
今回検証するのは以下の繰り返し処理となります。
繰り返し処理一覧
for
foreach
foreach(yield return)
while
do while
List.ForEach
Action
goto
forのソースコード
using System;
class Test
{
public static void Main()
{
Console.WriteLine("▼ for 文");
Console.WriteLine("*=--------=*");
for (int a = 1; a <= 100; a++)
{
Console.Write(a + "\t");
}
Console.WriteLine("");
}
}
出力結果

foreachのソースコード
using System;
using System.Linq;
class Test
{
public static void Main()
{
Console.WriteLine("▼ foreach 文");
Console.WriteLine("*=------------=*");
foreach (int b in Enumerable.Range(1, 100))
{
Console.Write(b + "\t");
}
Console.WriteLine("");
}
}
出力結果

foreach(yield return)のソースコード
using System;
using System.Collections.Generic;
class Test
{
private static IEnumerable<int> GetValues()
{
int c = 0;
while (++c <= 100)
{
yield return c;
}
}
public static void Main()
{
Console.WriteLine("▼ foreach 文 (yield return)");
Console.WriteLine("*=---------------------------=*");
foreach (int c in GetValues())
{
Console.Write(c + "\t");
}
Console.WriteLine("");
}
}
出力結果

whileのソースコード
using System;
class Test
{
public static void Main()
{
Console.WriteLine("▼ while 文");
Console.WriteLine("*=-----------=*");
int d = 0;
while(++d <= 100)
{
Console.Write(d + "\t");
}
Console.WriteLine("");
}
}
出力結果

do whileのソースコード
using System;
class Test
{
public static void Main()
{
Console.WriteLine("▼ do while 文");
Console.WriteLine("*=-------------=*");
int e = 1;
do
{
Console.Write(e++ + "\t");
}
while (e <= 100);
Console.WriteLine("");
}
}
出力結果

List.ForEachのソースコード
using System;
using System.Linq;
class Test
{
public static void Main()
{
Console.WriteLine("▼ List<T>.ForEach");
Console.WriteLine("*=-----------------=*");
Enumerable.Range(1, 100).ToList().ForEach(f => Console.Write(f + "\t"));
Console.WriteLine("");
}
}
出力結果

Actionのソースコード
using System;
class Test
{
public static void Main()
{
Console.WriteLine("▼ Action<T>");
Console.WriteLine("*=-----------=*");
Action<int> Foo = null;
Foo = g =>
{
if (0 < g)
{
Console.Write(g + "\t");
}
if (g < 100)
{
Foo(++g);
}
};
Foo(1);
Console.WriteLine("");
}
}
出力結果

gotoのソースコード
using System;
class Test
{
public static void Main()
{
Console.WriteLine("\n▼ goto 文");
Console.WriteLine("*=-----------=*");
int h = 1;
start:
Console.Write(h + "\t");
if (++h <= 100)
{
goto start;
}
Console.WriteLine("");
}
}
出力結果

説明は以上となります。
この記事が誰かの助けになれば幸いです。