プログラムの制御フローの英語名は:Flow of Control
プログラムを開発する際、ロジックの大部分はメソッド内に記述します。残りのロジックはプロパティ、演算子、その他の関数メンバーに配置します。
制御フローの分類
いわゆる制御フロー(flow of control)とは、プログラムコードの実行経路のことを指します。
既定ではプログラムは上から下へ順番に各文を実行します。
制御フロー文を使うことで、コードの実行順序を変更可能です。
制御文には様々な種類があり、これらについては後の講義で詳しく学びます。今回は入門編として、制御フローの概要を把握しましょう。
C#には主に3種類の制御フローが存在します:
順次実行が基礎となり、3種類の制御フローはそれぞれ分岐、反復、ジャンプのロジックを実装します;
- 選択文(Selection statements)
- 反復文(Iteration statements ループ)
- ジャンプ文(Jump statements)
各文には複数の記述方法が用意されています:
選択文
主な役割:条件に応じて実行するコードを選び、不要な処理をスキップします。
- if 条件が成立した場合にコードを実行
- if–else 二つの処理から一方を実行
- switch 複数の分岐と照合し、該当するコードを実行
反復文
主な役割:条件が満たされている間、同一のコードを繰り返し実行
- for 条件判定後にループ処理を実行
- while 条件判定後にループ処理を実行
- do while コード実行後に条件を判定
- foreach コレクション内の要素を一つずつ走査し自動実行
ジャンプ文
- break 現在のループを即座に終了
- continue 今回のループを中断し後続コードをスキップ、ループ末尾へ移動し次の周へ
- goto ラベルの付いた処理へ実行位置を移す
- return 現在のメソッドを終了し、呼び出し元へ戻る
まずは概要を把握するだけで大丈夫です。詳細は後ほど学習します。
class Program
{
static void Main()
{
int age = 18;
if (age >= 18) //条件が成立するとifブロック内のコードを実行
{
Console.WriteLine("成人です");
}
int score = 85;
if (score >= 90) //複数回条件判定
{
Console.WriteLine("優");
}
else if (score >= 80) //上の条件に一致しない場合こちらを判定
{
Console.WriteLine("良");
}
else if (score >= 70) //上二つの条件に一致しない場合こちらを判定
{
Console.WriteLine("可");
}
else if (score >= 60) //上三つの条件に一致しない場合こちらを判定
{
Console.WriteLine("合格");
}
else //すべての条件に一致しない場合実行、フォールバック処理
{
Console.WriteLine("不合格");
}
//forループ iは0から開始、iが10未満の間ループ実行、ループ終了毎にiに1加算
for (int i = 0; i < 10; i++)
{
Console.WriteLine(i);
}
int sum = 0;
while (sum < 100) //sumが100未満の間ループ内コード実行
{
sum += 10; //ループ毎にsumに10加算
Console.WriteLine(sum);
}
int count = 5;
do
{
Console.WriteLine("この行は最低1回実行されます");
count++; //ループ毎にcountに1加算
} while (count<5); //条件が成立しなくてもループ本体は1回実行
int[] scores = { 90, 80, 70, 60, 50 }; //要素5つの配列を定義
foreach (var item in scores) //配列内要素を順にitemへ代入しループ、全要素走査まで繰り返す
{
Console.WriteLine(item);
}
}
}
Code language: JavaScript (javascript)
上記コードは各自でVisual Studioへコピーし実行可能です。各構文については今後の講義で順に詳しく解説します。
プログラム制御フロー