前回は、変数を説明しました。今回は、条件分岐です。

条件分岐とは、ある条件のとき処理Aをさせたり、そうでない場合には処理Bをさせるような分岐をつくれます。

プログラムは、別記事で説明する予定の"繰り返し""条件分岐"がいくつも構成されて成り立っています。なので、とても大事です。(これ以外に大事な構文はたくさんありますが、基本なので^^)

if文の構成

if (式){
     処理A;
} else {
     それ以外の処理;
}


簡単な分岐

では、さっそくソースコードを見てみましょう。
<C#>
public class jyouken{
    public static void Main(){
        // 文字列に値をセット
        string name = "太郎";
        // nameが条件と正しい場合
        if (name == "太郎"){
            System.Console.WriteLine("こんにちわ!");
        } else {
            System.Console.WriteLine("どなたですか?");
        } 
    }
}

<結果>
こんにちわ!

ifの後にカッコで条件が書かれています。内容は、「もしnameが”太郎”であるとき」です。この条件が正しければ、その後の{ ~ }の処理が行われプログラムが終了します。ちなみにプログラムで正しいことをtrueといい、正しくないことをfalseと言います。
name変数の文字列を代入しているところに違う文字列を入れると、正しくないのでelseの後の{ ~ }の処理が流れると思います。ぜひ、やってみてください(*・ω・)ノ

<C#>
public class jyouken{
    public static void Main(){
        // 文字列に値をセット
        string name = "太郎";
        // nameが条件と正しい場合
        if (name == "太郎"){
            System.Console.WriteLine("こんにちわ!");
        } 
    }
}

上記のようにelseをなくすことも可能です。

条件は、正しい(==)以外に色々な比較を行うことができます。簡単に以下にまとめておきます。

比較演算子
演算子 説明
x == y xとyは等しい
x != y xとyは等しくない
x > y xはyより大きい
x < y xはyより小さい
x >= y xはy以上である
x <= y xはy以下である


では、少し複雑な条件分岐についてです。

複数の条件

スポンサードリンク

複数の条件を繋げたif文になります。

<C#>
public class bunki{
    public static void Main(){
        int i = 5;
        string moji1,moji2;
        if ((i >= 1) && (i < 10)){
            // A条件の処理
            moji1 = "1以上、10未満";
        }else if (i == 10 ){
            // B条件の処理
            moji1 = "10";
        }else{
            // C処理
            moji1 = "どれにも当てはまらない";
        }
        moji2 = "iは、" + moji1;
        System.Console.WriteLine(moji2);
    }
}
<結果>
iは、1以上、10未満

最初に数値iに5をセットして、文字列moji1とmoji2を宣言しています。
最初の条件は、「iが1以上かつ10未満」である時にA条件の処理に移ります。iがそれ以外の場合、下のelse if ( ~ )が次の条件として比較されます。条件が一致すれば、B条件の処理が行われます。B条件も一致しない場合、条件のない最後のelse(C処理)に入ります。
else ifを繋げるといくつでも条件を作ることができます。基本上から条件比較が行われますので、優先度の高い条件を上のif文に書きましょう。一つの条件内の処理が終わると、elseの終わり( } )までプログラムが飛ぶためです。

そして、結果出力前に文字列"iは"とmoji1をプラス(足す)で連結しmoji2に代入しています。文字列をつなぐときは、プラス(足す)を書きます。因みにマイナス(引く)をすると、コンパイルエラーとなり実行できません。

ここで少し補足です。
何気なく文字列や数値をプラス(+)で足したりしてきましたが。数値同士の四則演算(足す、引く、掛ける、割る)の順序は、学校の算数で習ったように括弧が優先されます。括弧のあとに掛ける・割る。次に足す・引くなどの順番で計算されていきます。

文字列と数値を足した時の挙動も説明していきたいと思います。
<C#>
public class bunki{
    public static void Main(){
        int i = 2;
        int j = (i + 3) * 4;
        string moji1 = "数値は、" + j + "です";
        System.Console.WriteLine(moji1);
    }
}

<結果>
数値は、20です

文字列と数値にプラス(+)を使った場合、j暗黙の変換というのが行われ、文字列に変換されます。(放蕩はjをToString関数してやるのが綺麗です)
しかし、この暗黙の変換に頼りすぎるのもよくありません。型が違うものを計算したり、代入したりするとプログラムの途中でエラーとなり、落ちたりプログラム終了してしまうことがありますので気を付けて下さい^^b


次回は、複数の条件分岐の別の記述方法です。