もし〜〜なら..(Switch文) さて、条件で処理を分けるのにはif文を使用してきました。 ですが、たくさん条件を分けるにはちょっと不便ですよね？ 例えばa〜zで処理を分けるときは26通りもif〜〜って書かなきゃないし。 そんなときはSwitch文です。 Switch文は、一つの変数に対して複数条件分岐するときに使用します。 Switch文の使い方 これ、結構特殊な文なんです。 まず例を示します。
Switch文の例
     1
     2
     3
     4
     5
     6
     7
     8
     9
    10
    11
    12
    a = 2;
    Switch(a){
      case 0:
        Mes("aは0ですね。");
        break;
      case 1:
        Mes("aは1ですな。");
        break;
      case 2:
        Mes("aは2じゃぽーん!!");
        break;
    }
今までにない雰囲気と心意気を持っています。 「case 0:」の部分が条件部分です。 勘のいい方はおわかりだと思いますが、aが0の時、「aは0ですね。」となります。 つまり、Switchの()の中の変数の値がcaseのあとに書かれている場合、その後に続く文が実行されます。 そして、重要なのは、「Break」です。 条件に当てはまったときに実行される文は、breakまでです。 C言語などでは書き忘れると次のcaseの内容まで実行してしまうんですね。よく書き忘れるんですよ。 ですが、Spinelの文構造上書かなくても次の文が実行されることはありません。 といっても、breakはつけるように心がけてください。 違うときは ifで言うところのelseですが、Switch文にはdefaultというものがあります。 defaultはすべてのcaseの一番下に記述します。
defaultの例
     1
     2
     3
     4
     5
     6
     7
     8
     9
    10
    11
    12
    13
    14
    15
    a = 2;
    Switch(a){
      case 0:
        Mes("aは0ですね。");
        break;
      case 1:
        Mes("aは1ですな。");
        break;
      case 2:
        Mes("aは2じゃぽーん!!");
        break;
      default:
        Mes("それ以外じゃ!");
        break;
    }
defaultは、caseの条件に当てはまらないとき、実行されます。 また、文の構造上、breakを書きわすれた場合に、この文が実行されます。 つまり、上の例ではcase 0:でbreakを忘れた場合、case 0:が実行された後1,2は飛ばされたdefaultが実行される、ということです。 また、同時に複数の条件を指定したい場合は、「,」で条件を追加します。
複数条件指定
     1
     2
     3
     4
     5
     6
     7
     8
     9
    10
    11
    12
    13
    14
    15
    a = 2;
    Switch(a){
      case 0,1,2:
        Mes("aは0か1か2ですね。");
        break;
      case 3:
        Mes("aは3ですな。");
        break;
      case 4:
        Mes("aは4じゃぽーん!!");
        break;
      default:
        Mes("それ以外じゃ!");
        break;
    }
こんな具合です。 また、他の言語と違い、文字列を指定することもできますし、クラスを指定することもできます。
クラスを指定する
     1
     2
     3
     4
     5
     6
     7
     8
     9
    10
    11
    12
    13
    14
    15
    16
    Btn = CButton.Create;
    Btn.Text = "Button";

    Memo = CMemo.Create;
    Memo.Text = "Memo";
    Memo.Top = Btn.Height;

    Obj = Memo;
    Switch(Obj){
      case Btn:
        Btn.Text = "ボタン";
        break;
      case Memo:
        Memo.Text = "メモ";
        break;
    }

前へ / index
プログラム言語「Spinel」
Copyright © 2005 - gabyou All Rights Reserved.
NOTES Software.