FC2ブログ
    09 «1.2.3.4.5.6.7.8.9.10.11.12.13.14.15.16.17.18.19.20.21.22.23.24.25.26.27.28.29.30.31.» 11

    ハルシオンシステムの気ままBlog

    株式会社ハルシオンシステムのメンバーが送る、UnityやらJavaやらの技術的話題から、自社開発のアプリの宣伝とかとかのブログです。ほんと気ままにいきたいと思います。更新日は毎週 月 木でっす!

     

    【ハルシオンブログ】Unity 条件式の時に書く|| と | の違い。論理演算子と条件付き論理演算子 

    こんにちは。ハルシオンシステムの坂内っす。

    ポケガ3では着せ替えシステムに変更が入ってまして、トップスとボトムスで好きな服を組み合わせることができるようになっています。
    また、アクセサリもいくつかつけて着飾れるようになっています。
    ポケガ1,2よりもちょっと進化していますので、お楽しみに!

    UnityというよりC#の話。
    条件式を書くときに「||」って使いますよね。
    or
    の論理演算子です。


    int a = 0;
    int b = 1;
    if(a == 0 || b == 2){
    Debug.Log("あたり");
    }


    こんな感じで使ったりしますよね。

    「aが0 or bが2の場合"あたり"を表示」
    こんな感じのコードになっています。

    「|」こんな演算子があるのも知ってますか?

    パイプ1個の演算子です。

    これも同じようにこんな感じで使うことができます。


    int a = 0;
    int b = 1;
    if(a == 0 | b == 2){
    Debug.Log("あたり");
    }


    結果は同じで"あたり"を表示します。

    この2つの違いはなんでしょうか?




    「||」は演算子の前の項目がtrueになると、あとの項目は処理しない。というものです。

    例えばこんなコードの場合


    int ViewNum(int num){
    Debug.Log(num);
    return num;
    }

    ・・・
    int a = 0;
    int b = 1;
    if(ViewNum(a) == 0 || ViewNum(b) == 5){
    Debug.Log("あたり");
    }



    ログにでるのは、

    0
    あたり

    の2行だけです。

    ||のあとの1は表示されません。

    or演算子なので、「||の前または、あとがtrueならばifの条件の中に入る」という条件式になっており、||の前がtrueなので||のあとは見ないといった処理になっています。

    | を使った場合はこうなります。


    int ViewNum(int num){
    Debug.Log(num);
    return num;
    }

    ・・・
    int a = 0;
    int b = 1;
    if(ViewNum(a) == 0 | ViewNum(b) == 5){
    Debug.Log("あたり");
    }



    0
    1
    あたり

    |演算子の場合は、|のあとも処理を行います。

    &&と& も同じです。
    &&の場合は前がfalseだった時点でifの外に出てしまい、&&のあとは処理されません。

    「||」は条件付き論理OR演算子、「|」は論理OR演算子と呼ばれるらしいです。

    あんまりゲームを作ってきて使い分けをしたことないですが、こんな違いがあるということを知っておくといいかもしれません。

    では、あでゅ~ノシ

    Category: 開発日記(Unity)

    tb 0 : cm 0   

    コメント

    コメントの投稿

    Secret

    トラックバック

    トラックバックURL
    →http://halcyonsystemblog.jp/tb.php/859-85535f70
    この記事にトラックバックする(FC2ブログユーザー)