C#のfor文で処理を繰り返すサンプルです。
目次
サンプル | for文とは / for文のサンプル / for文で配列の値を取得 |
ループを抜ける(break) / 2重ループでbreakを使用 | |
ループの先頭に戻る(continue) / 2重ループでcontinueを使用 | |
foreach文で配列の値を取得 |
for文とは
for(初期化式(1.値を初期化) ; 条件式(2.条件) ; 増減式(3.値を更新)){ 実行される処理 } |
- 処理を繰り返す時に使用します。
- 最初にforを書くのでfor文と呼ばれます。繰り返しはループとも呼ばれます。
- 初期化式は、最初に1回だけ実行されます。
- 使用する変数をカウンター変数またはループ変数といいます。変数名はiやjがよく使用されます。
- 条件式がtrueの間、処理を繰り返します。
- 増減式でカウンター変数/ループ変数の値が変わります。
- 条件式がfalseになるとループ処理を終了します。
for文のサンプル
using System;
class Test1
{
static void Main()
{
for (var i = 0; i < 3; i++)
{
Console.WriteLine(i); // 0 1 2が出力される
}
}
}
6行目は、初期化式(var i = 0)によりiは0から始まります。
増減式(i++)によりiの値は、1ずつ増えていきます。
条件式(i <3)がtrueの間は処理を繰り返し、iが3になるとfalseになるので終了します。
for文で配列の値を取得
using System;
class Test1
{
static void Main()
{
var arr1 = new[] { "赤", "黄", "青" }; // 配列
for (var i = 0; i < arr1.Length; i++)
{
Console.WriteLine(arr1[i]); // 赤 黄 青が出力される
}
}
}
8行目のLengthは、配列の長さを返します。
10行目は、変数と添字で配列の値を表示しています。配列の添字は0から始まります。
ループを抜ける(break)
using System;
class Test1
{
static void Main()
{
for (var i = 0; i < 3; i++)
{
if (i == 1)
{
break;
}
Console.WriteLine("i =" + i); //i=0が出力される
}
}
}
10行目のbreakでfor文を抜けます。
12行目は、i=0が出力されます。
2重ループでbreakを使用
内側のfor文を抜けます。
using System;
class Test1
{
static void Main()
{
for (var i = 0; i < 2; i++)
{
for (var j = 0; j < 2; j++)
{
if (j == 0)
{
break;
}
Console.WriteLine("j =" + j); //出力なし
}
Console.WriteLine("i =" + i); // i=0 i=1が出力される
}
}
}
6,8行目にfor文があり2重ループ(入れ子)になっています。
12行目のbreakは、内側のfor文のみ抜けます。
ループの先頭に戻る(continue)
using System;
class Test1
{
static void Main()
{
for (var i = 0; i < 3; i++)
{
if (i == 1)
{
continue;
}
Console.WriteLine("i =" + i); // i=0 i=2が出力される
}
}
}
10行目のcontinueでループ処理の先頭の6行目に戻ります。
12行目は、i=0 i=2が出力されます。
2重ループでcontinueを使用
内側のfor文の先頭に戻ります。
using System;
class Test1
{
static void Main()
{
for (var i = 0; i < 2; i++)
{
for (var j = 0; j < 2; j++)
{
if (j == 0)
{
continue;
}
Console.WriteLine("j =" + j); //j=1 j=1が出力される
}
Console.WriteLine("i =" + i); // i=0 i=1が出力される
}
}
}
6,8行目にfor文があり2重ループ(入れ子)になっています。
12行目のcontinueは、内側のfor文の先頭の8行目に戻ります。
foreach文で配列の値を取得
foreach(型 変数1 in 変数2){ 繰り返される箇所(変数1を使用) } |
- 上記for文との違いは、変数の値を加算する処理がありません。
- 配列やリストの要素を順番にアクセスします。
using System;
class Test1
{
static void Main()
{
var arr1 = new[] { "赤", "黄", "青" };
foreach (var str1 in arr1)
{
Console.WriteLine(str1); // 赤 黄 青が出力される
}
}
}
6行目は、配列です。
8行目は、foreach文で配列の全ての要素にアクセスします。
関連の記事