Difference between revisions of "For/ja"
< For
Jump to navigation
Jump to search
Mako Nozaki (talk | contribs) |
m |
||
Line 12: | Line 12: | ||
|spec | |spec | ||
|caveats | |caveats | ||
|examples=< | |examples= | ||
以下は、forループが最も一般的に記述される方法で、各部分が適切に指定されています。 | |||
このループは0から9までの10回実行されます。各繰り返しで2つの文が実行されます。 | |||
<source lang="lsl2"> | |||
integer a = 0; | integer a = 0; | ||
integer b = 10; | integer b = 10; | ||
for(; a < b; ++a) | for (a = 0; a < b; ++a) | ||
llOwnerSay((string)a); | { | ||
</ | llOwnerSay( (string)a ); // first statement | ||
< | llOwnerSay( (string)b ); // second statement | ||
} | |||
</source> | |||
次のものは一般的ではなく、中括弧が省略されている場合です。 | |||
これは、ループ中に1つの文のみを実行する必要がある場合に使用できます。 | |||
<source lang="lsl2"> | |||
integer a = 0; | integer a = 0; | ||
integer b = 10; | integer b = 10; | ||
for(; a < b; ++a) | for (a = 0; a < b; ++a) | ||
llOwnerSay( (string)a ); // single statement | |||
llOwnerSay((string)a); | </source> | ||
次のコードは技術的には可能ですが、読みやすさと保守性が低下するため、お勧めしません。 | |||
</ | |||
< | 初期化部分は省略されています。なぜなら、変数<code>a</code>はすでにゼロの値を持っているからです。 | ||
ループ本体も省略されています。なぜなら、増分ステートメントには必要なすべての操作が含まれているためです。 | |||
<source lang="lsl2"> | |||
integer a = 0; | integer a = 0; | ||
integer b = 10; | integer b = 10; | ||
for(; a < b; llOwnerSay((string)( | for ( ; a < b; llOwnerSay((string)(++a)) ) | ||
</ | ; // empty statement (could be at the end of the previous line) | ||
</source> | |||
|helpers | |helpers | ||
|also_header | |also_header |
Latest revision as of 07:34, 26 September 2023
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(条件式) { ループ; 増分処理; }