switch文で条件分岐

if文をやった訳だけど、同じような働きをする命令があるんだ。switch文といって、if文で複数の条件分岐を書くよりもコードが簡潔に書ける場合がある。比較が固定値で、かつ比較するパターンが多い場合に有効だね

なんで同じような働きの命令が2つあるの?どっちかでいいじゃん

働きは似ていても、全く同じって訳じゃないんだよ。switchのメリットは色々ある
-
可読性の向上:複数の条件分岐をif文で記述するよりも、switch文で記述した方が、コードの可読性が向上
-
保守性の向上:コードが簡潔になるため、保守作業が容易
-
エラーの削減:caseの値を正確に記述する必要があるため、if文で記述するよりもエラーを減らせる
-
効率的な処理:場合によっては、最適化によってif文よりも効率的に実行されることがあります

よくわからないなぁ。コードを見せてよ

一例としてサンプルコードを見てみよう
using UnityEngine;
public class test : MonoBehaviour
{
// Unityの開始時に一度だけ実行されるメソッド(スタート関数)
void Start()
{
// 1から6未満の乱数(つまり1〜5)を生成して変数 fortune に代入
// Random.Range(int min, int max) は min 以上 max 未満 の整数を返す
int fortune = Random.Range(1, 6);
// 生成された数字をログで確認(デバッグ用)
Debug.Log("あなたの引いた番号は: " + fortune);
// fortune の値に応じて運勢を分岐表示
switch (fortune)
{
// fortune が 1 の場合:大凶
case 1:
Debug.Log("結果:大凶です。今日は慎重に行動しましょう。");
break;
// fortune が 2 の場合:凶
case 2:
Debug.Log("結果:凶です。ちょっとしたトラブルに注意。");
break;
// fortune が 3 の場合:吉
case 3:
Debug.Log("結果:吉です。平穏な一日になるでしょう。");
break;
// fortune が 4 の場合:中吉
case 4:
Debug.Log("結果:中吉です。何事も順調に進みそうです。");
break;
// fortune が 5 の場合:大吉
case 5:
Debug.Log("結果:大吉です!今日は最高の運勢です!");
break;
// 本来ここには到達しないが、安全のための default 節
default:
Debug.Log("不明な番号です。運勢が測定できませんでした。");
break;
}
}
}

int型変数fortuneに数字を入れて、switch文の比較に使用しているよ。なんのプログラムかわかるかな?

1から5までのランダムな数字の結果、運勢を出力してるから「おみくじ」だね♪ 確かにこれをif文で書こうとすると大変そうだね。固定値の比較が楽ってこういうことか

そうそう。初めのうちはif文とswitch文の使い分けは難しいかもしれないけど徐々に慣れていこう。加えて、列挙型と呼ばれるものと相性が良かったりするんだけど、それは応用編でやろうかと思う



はーい。今日の私の運勢はどうかなっと!


ぐはっ……
次のページ


【Unity基本】修飾子
修飾子とは?型指定は覚えてるかい?int num とか string name とかだったよね?それがどうしたの変数には型指定の他にも修飾子をつけて、変数の特性を明確にすることで可読性や安全性を向上させる役割があるんだ型指定で変数の中身を表...
※コメントポリシーはこちらから。