そういうのがいいブログ

アプリ個人開発 まるブログ

アプリ開発覚え書き

【Unity】returnに"?" 条件演算子とは

returnに"?"マークあるんですけど????

ブログを見ていたら

returnに"?"が書いてあって、内容が理解できなかったのでメモ

正体は条件演算子

結論として条件演算子というみたいで、
こちらの情報で解決しました。
"?"と":" のセットで使うみたいですね。

組込み演算子 - C# によるプログラミング入門 | ++C++; // 未確認飛行 C f:id:marumaro7:20201227093504p:plain

具体例

あとから見たときにまたわからなくなりそうなので、 具体例書いておきます。

using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class Test : MonoBehaviour
{
    private string a;//string型の変数aを宣言
    private bool c;//bool型の変数cを宣言

    private string b;//string型の変数bを宣言

    void Start()
    {
        a = "あ";//変数aに文字列 あ を代入

        b=AAA();//関数AAA()を実行し、その返り値を変数bに代入

        Debug.Log(b);//コンソールに変数bの文字列を表示
    }      


    //返り値の型がstring型の関数AAAを作成
    private string AAA()
    {
        if (a == "あ")
        {
            c = true;//aの文字列が あ だったら変数cをtrueにする
        }
        else
        {
            c = false;//aの文字列が あ ではなかったら変数cをfalseにする
        }

        //cがtrueなら返り値は "変数aには あ が入っています。" になる
        //cがfalseなら返り値は "変数aには あ は入っていません。" になる
        return c ? "変数aには あ が入っています。" : "変数aには あ は入っていません。";
    }    
}



このスクリプトを"空のオブジェクト"にセットして
f:id:marumaro7:20201227094342p:plain:w400



実行すると 関数AAA()の返り値の値は
「"変数aには あ が入っています。"」
が返ってきていることがわかります。
f:id:marumaro7:20201227094445p:plain:w400

おわりに

return A ? B : C
のBとCには"返り値のある関数"を入れることもできるようです。

私が初めてみたのは関数が入っていたので、大混乱でしたー!!