C#プログラミング入門!初心者向け その9 条件分岐 ①ifステートメント

ビジュアルスタジオC#
Visualstudio
みつる君
みつる君

ここでは、C#の条件分岐について学習します。

条件分岐とは、「どういう条件なら、どうする」といったコードを書くことです。

①ifステートメント

②switchステートメント

の2つについて学びます。

ifステートメント

みつる君
みつる君

ifステートメント(以下、if文)は、ifの後に条件式を書き、更に、その条件が満足されたときの処理を書いていきます。具体的に説明していきます。

if~

みつる君
みつる君

if文とは、ある条件が成り立つかどうかによって、実行する処理を変えることができる文のことです。

if文の基本的な書き方は以下のようになります。

構文
if (条件式)
{
  // 条件式が真(満足)の場合ここのコードが実行されます。
}

マリさん
マリさん

条件式は、数値の場合、下記の演算子が使えます。

・x == y  xとyは等しい
・x != y  xとyは異なる
・x > y  xはyより大きい(超)
・x >= y  xはy以上か
・x < y  xはyより小さい(未満)
・x <= y  xはyと以下か

例えば、

int x>=5;

if (x >= 10)
{
  // 条件が満足されたのでここのコードが実行されます。

}

マリさん
マリさん

文字列の場合は

例えば

string str = “zzz”;

if (str == “zzz”)
{
  // 条件が満足されたのでここのコードが実行されます。

}

みつる君
みつる君

では、実際にコードを書いてみましょう。

みつる君
みつる君

下記のコードでは、変数「i=10」に対して、iが20未満なら条件が成り立ち、

Console.WriteLine(“iは、20未満です!”);

が、実行されます。

using System;

namespace ConsoleApp1
{
    internal class Program
    {
        static void Main(string[] args)
        {
            int i = 10; //10にした場合
            if (i < 20)
            {
                Console.WriteLine("iは、20未満です!");
            }
        }
    }
}

みつる君
みつる君

実行結果は

iは、20未満です!

みつる君
みつる君

となります。

みつる君
みつる君

では変数「i=20」とした場合はどうなりますでしょうか。

using System;

namespace ConsoleApp1
{
    internal class Program
    {
        static void Main(string[] args)
        {
            int i = 20; //20にした場合
            if (i < 20)
            {
                Console.WriteLine("iは、20未満です!");
            }
        }
    }
}

みつる君
みつる君

実行結果は

みつる君
みつる君

iが20以上に該当し、

(iが20未満の条件が成立しないため )

結果は表示されない状態になります。では、どうしたら、表示されるようになるでしょうか。

if〜else

みつる君
みつる君

構文
if (条件式)
{
  // 条件式が真(満足)の場合ここのコードが実行されます。
}

else

{

    // 条件式が偽 (満足しなかった) の場合ここのコードが実行されます。

}

マリさん
マリさん

ifだけでは、条件が満足していない場合、そのまま実行されないことがわかりました。

それを、回避したいときは、if~elseを使います。

みつる君
みつる君

下記のコードでは、前回同様、変数「i=10」に対して、iが20未満なら条件が成り立ち、

Console.WriteLine("iは、20未満です!");

が、実行されます。

using System;

namespace ConsoleApp1
{
    internal class Program
    {
        static void Main(string[] args)
        {
            int i = 10; //10にした場合
            if (i < 20)
            {
                Console.WriteLine("iは、20未満です!");
            }
            else
            {
                Console.WriteLine("iは、20以上です!");
            }
        }
    }
}

みつる君
みつる君

実行結果は

iは、20未満です!

みつる君
みつる君

となります。

みつる君
みつる君

では変数「i=20」とした場合はどうなりますでしょうか。

ifだけの場合では、条件が成立せず表示されませんでしたが・・・

using System;

namespace ConsoleApp1
{
    internal class Program
    {
        static void Main(string[] args)
        {
            int i = 20; //20にした場合
            if (i < 20)
            {
                Console.WriteLine("iは、20未満です!");
            }
            else
            {
                Console.WriteLine("iは、20以上です!");
            }
        }
    }
}

みつる君
みつる君

実行結果は

iは、20以上です!

みつる君
みつる君

条件式(iが20未満)に該当しなかったため、elseにとび、

Console.WriteLine("iは、20以上です!");

が実行されました。

if~else if~else

みつる君
みつる君

更に、条件を分岐できます。

みつる君
みつる君

構文
if (条件式A)
{
  // 条件式Aが真(満足)の場合ここのコードが実行されます。
}

}else if(条件式B)

{

  // 条件式Aが偽(満足しなかった)場合で、条件式Bが真(満足)の場合ここのコードが実行されます。

{

else

{

    // 条件式がすべて偽 (満足しなかった) の場合ここのコードが実行されます。

}

マリさん
マリさん

else ifを使えば、どのような条件でも分岐できます。

みつる君
みつる君

下記のコードでは、前回同様、変数「i=10」に対して、iが20未満なら条件が成り立ち、

Console.WriteLine("iは、10以上20未満です!");

が、実行されます。

using System;

namespace ConsoleApp1
{
    internal class Program
    {
        static void Main(string[] args)
        {
            int i =10;
            if (i < 10)
            {
                Console.WriteLine("iは、10未満です!");
            }
            else if (i < 20)
            {
                Console.WriteLine("iは、10以上20未満です!");
            }
            else
            {
                Console.WriteLine("iは、20以上です!");
            }
        }
    }
}

みつる君
みつる君

実行結果は

iは、10以上20未満です!

みつる君
みつる君

となります。

マリさん
マリさん

上記の例ではelse ifを2つ使っていますが、いくつでも使えます。

あまりに分岐が多い場合は、switchステートメントを使いましょう。

比較演算子や論理演算子を使う

みつる君
みつる君

条件式には、比較演算子や論理演算子を使って、真か偽かを判定できる式を書きます。

比較演算子には、等しい(==)、等しくない(!=)、より大きい(>)、より小さい(<)、以上(>=)、以下(<=)などがあります。

論理演算子には、かつ(&&)、または(||)、否定(!)などがあります。

例えば、以下のように書くことができます。

using System;  namespace ConsoleApp1 {     internal class Program     {         static void Main(string[] args)         {             int x = 10;       if (x> 5 && x < 15) {
       // xが5より大きくかつ15より小さいときに実行される処理
      } else {
       // xが5以下または15以上のときに実行される処理
      }
        }
    }
}

みつる君
みつる君

IF文は、elseを省略することもできます。

その場合は、条件式が真のときだけ処理が実行されます。

例えば、以下のように書くことができます。

using System;

namespace ConsoleApp1
{
    internal class Program
    {
        static void Main(string[] args)
        {
           string name = "Alice";
      if (name == "Alice") {
       // nameがAliceのときに実行される処理
      }
        }
    }
}

みつる君
みつる君

IF文は、else ifを使って、複数の条件式を連続して書くこともできます。

その場合は、上から順に条件式を評価し、最初に真となった条件式に対応する処理が実行されます。

例えば、以下のように書くことができます。

using System;  namespace ConsoleApp1 {     internal class Program     {         static void Main(string[] args)         {            int score = 80;       if (score>= 90) {
       // scoreが90以上のときに実行される処理
      } else if (score >= 80) {
       // scoreが80以上90未満のときに実行される処理
      } else if (score >= 70) {
       // scoreが70以上80未満のときに実行される処理
      } else {
       // scoreが70未満のときに実行される処理
      }
        }
    }
}

マリさん
マリさん

以上が、C#のif文について詳しく説明した内容です。

if文を使えば、プログラムの流れを柔軟に制御することができます。

ぜひ覚えておいてください。

侍エンジニアPlus
タイトルとURLをコピーしました