プログラム制御フロー

プログラムの制御フローの英語名は:Flow of Control

プログラムを開発する際、ロジックの大部分はメソッド内に記述します。残りのロジックはプロパティ、演算子、その他の関数メンバーに配置します。


制御フローの分類

いわゆる制御フロー(flow of control)とは、プログラムコードの実行経路のことを指します。

既定ではプログラムは上から下へ順番に各文を実行します。

制御フロー文を使うことで、コードの実行順序を変更可能です。

制御文には様々な種類があり、これらについては後の講義で詳しく学びます。今回は入門編として、制御フローの概要を把握しましょう。

C#には主に3種類の制御フローが存在します:

順次実行が基礎となり、3種類の制御フローはそれぞれ分岐、反復、ジャンプのロジックを実装します;

  1. 選択文(Selection statements)
  2. 反復文(Iteration statements ループ)
  3. ジャンプ文(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へコピーし実行可能です。各構文については今後の講義で順に詳しく解説します。

プログラム制御フロー

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です