[過去ログ] 【3Dゲームエンジン】Unity質問スレッド32 (1002レス)
前次1-
抽出解除 必死チェッカー(本家) (べ) 自ID レス栞 あぼーん

このスレッドは過去ログ倉庫に格納されています。
次スレ検索 歴削→次スレ 栞削→次スレ 過去ログメニュー
リロード規制です。10分ほどで解除するので、他のブラウザへ避難してください。
391: 2017/11/25(土)19:39 ID:tNOe2BPS(1/9) AAS
「キムチ君、制作物は細かい所手抜きなのに言葉は潔癖かよ!」と思いながらROMってる皆さんこんばんは。

講義のお時間です。

今回も"条件分岐"についての講義です。

前回は「if文」を使いました。
今回はもう一つの条件分岐文である「switch文」をやります。
394: 2017/11/25(土)19:57 ID:tNOe2BPS(2/9) AAS
前回、"if(){ } else if(){ }"の説明で下のような例を出しました


if( a == 1 ){
Debug.Log("aは1");
} else if( a == 2 ){
Debug.Log("aは2");
} else if( a == 3 ){
省21
397: 2017/11/25(土)20:05 ID:tNOe2BPS(3/9) AAS
見て分かる通りswitch文で出来る事はif文でも可能です。
そのせいでswitchって使い所がイマイチわからないという初心者が多いです。

switch文はif文の簡易バージョンと思ってください。

「switch( a >= 1 )」とか
「switch( a == 1 )」とか
「switch( a == 1 && b == 1)」とか

if文並みの複雑な条件式は記述できません(エラーになります)
省4
398: 2017/11/25(土)20:17 ID:tNOe2BPS(4/9) AAS
"default:"は"case"のどれにも一致しなかった場合に実行される部分です。
if文のelseに相当します。
if文でelseを書かない事が出来たように不要ならば"default:"も書かなくて大丈夫です。


switch( a ){
case 1:
 Debug.Log("aは1");
省21
399: 2017/11/25(土)20:25 ID:tNOe2BPS(5/9) AAS
"break;"は重要です。
下に"case 1:"の"break;"を削除した例を書きます。


switch( a ){
case 1:
 Debug.Log("aは1");
case 2:
省15
400
(1): 2017/11/25(土)20:27 ID:tNOe2BPS(6/9) AAS
<switch文の中にさらにswitch文の例>
int a = 1, b = 1;
switch( a ){
case 1:
 switch( b ){
  case 1:
   Debug.Log("aは1でさらにbは1");
省16
401: 2017/11/25(土)20:28 ID:tNOe2BPS(7/9) AAS
これは書き途中で送信したミス投稿なので無視するように>>400
402
(1): 2017/11/25(土)20:32 ID:tNOe2BPS(8/9) AAS
<switch文の中にさらにswitch文の例>
int a = 1, b = 1;
switch( a ){
case 1:
 switch( b ){
  case 1:
   Debug.Log("aは1でさらにbは1");
省23
403
(1): 2017/11/25(土)20:37 ID:tNOe2BPS(9/9) AAS
複雑になってきましたね

実は>>402
「<switch文の中にさらにswitch文の例>」には"break;"が1つ抜けており
「a = 1」の時の結果が正しくならないバグを今見つけました。

このように見づらい&ミスをしやすくなるため
switch文の中にさらにswitch文を入れる事はあまり良い方法とはいえず推奨はされていません。

以上だクソども
前次1-
スレ情報 赤レス抽出 画像レス抽出 歴の未読スレ AAサムネイル

ぬこの手 ぬこTOP 0.032s