For/ja
< For
Jump to navigation
Jump to search
LSL ポータル | 関数 | イベント | 型 | 演算子 | 定数 | 実行制御 | スクリプトライブラリ | カテゴリ別スクリプトライブラリ | チュートリアル |
for( 初期化; 条件式; 増分処理 ) ループ
• | 初期化 | – | 条件式をチェックする前に一度だけ実行されます。 | |
• | 条件式 | – | この文の実行結果が真のときはループが実行されます。 | |
• | 増分処理 | – | ループの後に実行され, その後で条件式が再びチェックされます。 | |
• | ループ | – | シングルステートメントか、ブロックステートメントか、空のステートメントのいずれかにできます。 |
いずれのステートメントも空欄にできます。
詳細
例
以下は、forループが最も一般的に記述される方法で、各部分が適切に指定されています。
このループは0から9までの10回実行されます。各繰り返しで2つの文が実行されます。
integer a = 0;
integer b = 10;
for (a = 0; a < b; ++a)
{
llOwnerSay( (string)a ); // first statement
llOwnerSay( (string)b ); // second statement
}
次のものは一般的ではなく、中括弧が省略されている場合です。
これは、ループ中に1つの文のみを実行する必要がある場合に使用できます。
integer a = 0;
integer b = 10;
for (a = 0; a < b; ++a)
llOwnerSay( (string)a ); // single statement
次のコードは技術的には可能ですが、読みやすさと保守性が低下するため、お勧めしません。
初期化部分は省略されています。なぜなら、変数a
はすでにゼロの値を持っているからです。
ループ本体も省略されています。なぜなら、増分ステートメントには必要なすべての操作が含まれているためです。
integer a = 0;
integer b = 10;
for ( ; a < b; llOwnerSay((string)(++a)) )
; // empty statement (could be at the end of the previous line)
ノート
forループは下記のwhileループと同じです。
初期化; while(条件式) { ループ; 増分処理; }