制御フロー
スポンサーリンク
if 文
if (条件式1) 文1
else if (条件式2) 文2
...
else 文<sub>else</sub>
if 文の else-if 節,else 節はそれぞれ省略できます。
次のプログラムは,整数 a, b の大小を判定する例です。
using System;
class Program
{
static void Main()
{
int a = 2, b = 3;
if (a == b)
Console.WriteLine("a = b");
else if (n > 0)
Console.WriteLine("a > b");
else
Console.WriteLine("a < b");
}
}
a < b
複文
ブロック { ... } で 1 つ以上の文を囲んだものは,複文またはブロック文と呼ばれ,文法的には文の一種です。 if 文や for 文などで複数の文を記述したいときは,複文を用います。
if (a > b) {
tmp = a;
a = b;
b = a;
}
switch 文
switch 文は case 定数: というラベルを持つ制御構文です。
switch (選択式)
{
case 定数1:
処理1
break;
case 定数2:
処理2
break;
...
default:
処理<sub>def</sub>
break;
}
次のプログラムは,month の値によって処理を振り分ける例です。
using System;
class Program
{
static void Main()
{
int month = 7, days;
switch (month)
{
case 4:
case 6:
case 9:
case 11:
days = 30;
break;
case 2:
days = 28;
break;
default:
days = 31;
break;
}
Console.WriteLine(days);
}
}
31
対応する case ラベルが存在しなければ,default: へ処理が移ります。
default 節は省略できます。
for 文
for (初期化部; 条件式; 増分処理) 文
次のコードは,for 文を使って配列の各要素を出力する例です。
using System;
class Program
{
static void Main()
{
int[] arr = new[] { 1, 2, 3, 4, 5 };
for (int i = 0; i < arr.Length; i++)
Console.WriteLine(arr[i]);
}
}
1
2
3
4
5
初期化部で宣言された変数 i は,この for 文の中だけで有効です。
while 文
while (条件式) 文
次のコードは,while 文を使って配列の各要素を出力する例です。
int i = 0;
while (i < arr.Length)
Console.WriteLine(arr[i++]);
while 文の後判定バージョンとして,do-while 文があります。
do 文 while (条件式);
foreach 文
foreach (型 変数 in 配列など) 文
次のコードは,foreach 文を使って配列の各要素を出力する例です。
foreach (var e in arr)
Console.WriteLine(e);
break/continue
break 文はループを脱出するために用います。
for (int i = 0; i < 5; i++)
{
if (i == 3) break;
Console.WriteLine(i);
}
0
1
2
continue 文はループ処理を 1 ステップ飛ばすために用います。
for (int i = 0; i < 5; i++)
{
if (i == 3) continue;
Console.WriteLine(i);
}
0
1
2
4
goto 文
次のコードは,goto 文を使って 0 から 4 までの数を数え上げる例です。
int i = 0;
Loop:
Console.WriteLine(i++);
if (i < 5) goto Loop;
0
1
2
3
4
スポンサーリンク