Jump/ja
< Jump
Jump to navigation
Jump to search
Revision as of 08:53, 10 April 2011 by RoyalTurkey Markstein (talk | contribs)
LSL ポータル | 関数 | イベント | 型 | 演算子 | 定数 | 実行制御 | スクリプトライブラリ | カテゴリ別スクリプトライブラリ | チュートリアル |
- The correct title of this article is jump/ja. The initial letter is shown capitalized due to technical restrictions.
jump target;
jump target;• label | target | – | 階層ツリーにおいて、jumpを含む、同じまたは上位のスコープ区間内に存在するラベル名。 |
@target;
• label | target | – | ラベルは、ラベルと同じか、ラベルが存在するよりも内側のスコープにjumpが存在する場合のみ、ターゲットとなることが出来ます。
言い換えれば、ターゲットは必ずjumpに対して階層ツリーの上位(外側)に存在しなくてはならず、if文の外側から内側に向かってジャンプは出来ません。つまり、異なる関数間、異なる(離れた)スコープ間、異なるステート間でジャンプする事も出来ません。これらのようなコードを書いた場合、単純にjumpに対応するラベルが見つからないと言うコンパイルエラーを起こすでしょう。 |
注意点
ひとつのtargetと複数のjumpを使った場合、必ずしも全ての場合でジャンプが実行されるわけではありません。 複数のジャンプのためには、更にtargetが必要となる場合があるでしょう。 これは、長く知られたLSLのバグです。
サンプル
integer a = 5; jump over; @in; a = 6; @over; llOwnerSay((string)a); if(a < 6) jump in; //script will say 5 and then 6