【3Dゲームエンジン】Unity質問スレッド32 at GAMEDEV【3Dゲームエンジン】Unity質問スレッド32 - 暇つぶし2ch■コピペモード□スレを通常表示□オプションモード□このスレッドのURL■項目テキスト411:名前は開発中のものです。 17/11/25 20:05:41.19 tNOe2BPS.net 見て分かる通りswitch文で出来る事はif文でも可能です。 そのせいでswitchって使い所がイマイチわからないという初心者が多いです。 switch文はif文の簡易バージョンと思ってください。 「switch( a >= 1 )」とか 「switch( a == 1 )」とか 「switch( a == 1 && b == 1)」とか if文並みの複雑な条件式は記述できません(エラーになります) 『1つの変数の値の変化で実行させたいプログラムを変えたい時に使う』物です。 複雑な条件分岐はIF文に任せましょう。 ちなみに先程の例では「if else if文」側より「switch文」側の方が多少処理速度が速いです。 早いと言っても0.0001秒という微々たる差ですが。 412:名前は開発中のものです。 17/11/25 20:17:13.50 tNOe2BPS.net "default:"は"case"のどれにも一致しなかった場合に実行される部分です。 if文のelseに相当します。 if文でelseを書かない事が出来たように不要ならば"default:"も書かなくて大丈夫です。 例 switch( a ){ case 1: Debug.Log("aは1"); break; case 2: Debug.Log("aは2"); break; } "case"は「変数がその値だったら」という意味合いで記述します。 上の例ですと "case 1:"は"if( a == 1 )"と同じで"case 2:"は"if( a == 2 )"と同じです。 もう少し分かりやすくすると下のようになります。 例 string mode = "OPENING"; switch( mode ){ case "OPENING": Debug.Log("オープニングだよ"); break; case "ENDING": Debug.Log("エンディングだよ"); break; } 上の場合「オープニングだよ」と表示されます。 変数"mode"の中身を例えば"hello"と適当な文字に変えるとどれにも一致しなくなるため何も表示されなくなりなります。これは"default:"を記述していないからです。 次ページ最新レス表示レスジャンプ類似スレ一覧スレッドの検索話題のニュースおまかせリストオプションしおりを挟むスレッドに書込スレッドの一覧暇つぶし2ch