C# サンプル集 |
Visual Basic 中学校 > C# サンプル集 > C# サンプル集目次 >
for による回数指定の繰り返し
2022/9/25
→ Visual Basic のサンプルに切り替える → Python のサンプルに切り替える
目次
5回繰り返す
for (int i = 0; i < 5; i++)
{
System.Diagnostics.Debug.WriteLine("こんにちは!");
}
実行すると下記の通り出力されます。
こんにちは!
こんにちは!
こんにちは!
こんにちは!
こんにちは!
カウンター変数の型を long にする
for (long i = 0; i < 5; i++)
{
System.Diagnostics.Debug.WriteLine("こんにちは!");
}
実行すると下記の通り出力されます。
こんにちは!
こんにちは!
こんにちは!
こんにちは!
こんにちは!
繰り返し回数を取得する
for (int i = 0; i < 5; i++)
{
System.Diagnostics.Debug.WriteLine($"現在{i}周目です。");
}
実行すると下記の通り出力されます。
現在0周目です。
現在1周目です。
現在2周目です。
現在3周目です。
現在4周目です。
途中でループから抜け出す (break)
この例は本来10回繰り返す指定になっていますが、if 文で条件判断して3周目で抜けます。
for (int i = 0; i < 11; i++)
{
System.Diagnostics.Debug.WriteLine($"カウンター={i}");
if (i == 2)
{
break;
}
}
System.Diagnostics.Debug.WriteLine("終了");
実行すると下記の通り出力されます。
カウンター=0
カウンター=1
カウンター=2
終了
ループがすべて完了したか確認する (たとえば、breakしていないかどうか)
この例では 変数 i が 9999 の場合 break します。ループの処理がすべて終わった後に break して終わったのか、break しないで終わったのかメッセージを出力します。 このまま実行すると i は 9999 にならないので break は発生しないで終了します。
bool isBreak = false;
for (int i = 0; i < 11; i++)
{
System.Diagnostics.Debug.WriteLine($"カウンター={i}");
if (i == 9999) //←ここを i == 2 などに変えると、最後のメッセージが出力されなくなります。
{
isBreak = true;
break;
}
}
if (!isBreak)
{
System.Diagnostics.Debug.WriteLine("breakしないでループを終了しました。"); //←これが出力されます。
}
メモ:ループが完了したかを検出する特別な機能はありません。
その周を中断し、次の周を開始する (continue)
if 文で条件判断して2周目と3周目であれば処理を中断して次の周を開始します。
for (int i = 0; i < 5; i++)
{
System.Diagnostics.Debug.WriteLine($"カウンター {i} 開始");
if ( i == 1 || i == 2)
{
continue;
}
System.Diagnostics.Debug.WriteLine($"カウンター {i} 終了");
}
実行すると下記の通り出力されます。
カウンター 0 開始
カウンター 0 終了
カウンター 1 開始
カウンター 2 開始
カウンター 3 開始
カウンター 3 終了
カウンター 4 開始
カウンター 4 終了
次の周は実行しない。次の次から実行する。
次の例では、i = 2 の周は実行されません。その前の周(i = 1の周)で i を +1 しているからです。
for (int i = 0; i < 5; i++)
{
System.Diagnostics.Debug.WriteLine($"カウンター={i}");
if (i == 1)
{
i += 1;
}
}
メモ:この例のようにカウンター変数に直接代入することで前にも後ろにも任意の周に移動できます。
実行すると下記の通り出力されます。
カウンター=0
カウンター=1
カウンター=3
カウンター=4
2重ループで九九の表を作成する
for (int x = 1; x <= 9; x++)
{
for (int y = 1; y <= 9; y++)
{
System.Diagnostics.Debug.Write($"\t{x * y}");
}
System.Diagnostics.Debug.WriteLine("");
}
実行すると下記の通り出力されます。
カウントを 5 から開始する
for (int i = 5; i < 8; i++)
{
System.Diagnostics.Debug.WriteLine($"カウンター={i}");
}
実行すると下記の通り出力されます。
カウンター=5
カウンター=6
カウンター=7
2ずつカウントアップする
for (int i = 0; i < 9; i+=2)
{
System.Diagnostics.Debug.WriteLine($"カウンター={i}");
}
実行すると下記の通り出力されます。
カウンター=0
カウンター=2
カウンター=4
カウンター=6
カウンター=8
カウントダウンする
for (int i = 100; i > 95 ; i--)
{
System.Diagnostics.Debug.WriteLine($"カウンター={i}");
}
カウンター=100
カウンター=99
カウンター=98
カウンター=97
カウンター=96
列挙型を繰り返す
この例では DayOfWeek 列挙型 のメンバーを列挙します。
for (var i = DayOfWeek.Sunday; i <= DayOfWeek.Saturday; i++)
{
System.Diagnostics.Debug.WriteLine($"{(int)i}:{i}");
}
実行すると下記の通り出力されます。
0:Sunday
1:Monday
2:Tuesday
3:Wednesday
4:Thursday
5:Friday
6:Saturday