System クラスの inputString メソッドで表示される入力ウィンドウにはボタンが2つあるよね。 | |
なんか唐突だね… うん、確かに『OK』と『キャンセル』っていう2つのボタンがあるね。 |
|
今回は、OK ボタンが押された時とキャンセルボタンが押された時とで、違う処理をするスクリプトを作ってみようと思うんだ。 | |
それってもしかして条件分岐のこと? | |
うん、それ。よくわかったね。 | |
KAG でも if と endif タグを使って条件分岐できるからね〜。 | |
TJS で条件分岐するときも if なんだ。 | |
あ、そうなの? | |
うん。まぁ endif は無いんだけどね。 TJS だと、こうやって条件分岐のスクリプトを書くんだ。 |
<if を使った条件分岐(TJSスクリプト)>
KAG スクリプトに置き換えるとこんな感じかな。 |
<if タグを使った条件分岐(KAGスクリプト)>
if の使い方は KAG の if タグに似てるね。 | |
でしょ。 で、『条件』の部分には条件式を書くんだ。 条件式の書き方も基本的には KAG と同じで、例えばこんな感じ。 |
<if の使用例>
if(a == 1) ってのは、 変数 a の値が 1 だったら if の次の { と } の間にあるスクリプトを実行するっていう意味ね。 | |
じゃあこのスクリプトを実行すると「変数 a の値は 1 です。」っていうメッセージが表示されるってことだよね? | |
ん、そう。 あと、条件が成り立たなかった場合に実行する処理は else を使って書くんだ。 |
|
これも KAG の else タグと同じだね。 | |
ん、そだね。 else の使い方はこう。 |
<else を使った条件分岐(TJSスクリプト)>
で、KAG スクリプトに置き換えるとこうかな。 |
<else タグを使った条件分岐(KAGスクリプト)>
これも似てるね〜。 | |
だね。 それから、条件を2つ以上指定したいときは else の後ろに if をつなげられるんだ。 こんなふうに。 |
<条件が複数ある場合の分岐(TJSスクリプト)>
これは KAG だと、elsif タグを使って書けるよね。 えっと、KAG スクリプトに置き換えるとこうなるのかな? |
<条件が複数ある場合の分岐(KAGスクリプト)>
うん、そうなるね。 じゃ、ここで1つ例をあげとくね。 |
|
うん。 |
<if と else を使った条件分岐の例>
このスクリプトを実行すると…? | |
変数 a が 1 に初期化されてるから、『a == 1』が成り立って、 「変数 a の値は 1 です。」って表示されるね。 | |
ん。 じゃあ、a を 2 に初期化すると…? |
|
今度は、『a == 1』は成り立たないけど、 次の『a == 2』が成り立つから、 「変数 a の値は 2 です。」って表示されるね。 | |
ん、OK。 じゃ、a を 3 に初期化したら…? |
|
『a == 1』も『a == 2』も 成り立たなくなるから、else のとこのスクリプトが実行されて、 「変数 a の値は 1 と 2 以外の数です。」って表示されるよね。 | |
うん、完璧だね。 | |
条件分岐は KAG の書き方と似てたからね〜。 | |
あと、TJS の場合は if とか else の中身の命令が1つだけだったら、 { と } を省略して、こんなふうに書くこともできるんだ。 |
<括弧を省略した書き方>
ちょっと短く書けるようになったね。 | |
うん。ただ、あんまり省略しすぎるとスクリプトが読みにくくなっちゃうことがあるから、 その辺は気をつけてね。 | |
うん、わかった。 | |
じゃ、今回はこれくらいにして、次回は条件分岐でよく使う演算子を紹介するね。 | |
それって今回使った『==』とかのことだよね? | |
ん、そう。 あと、OK とキャンセルで違う処理をするスクリプトも書かなくちゃね。 |
|
あ、そっか。それが今回の目標だったもんね。 | |
そうそう。 それじゃ、また次回ね。 |