Difference between revisions of "For/ja"
< For
Jump to navigation
Jump to search
Coffee Mills (talk | contribs) m |
m |
||
(5 intermediate revisions by 3 users not shown) | |||
Line 1: | Line 1: | ||
{{Multi-lang}} | {{Multi-lang}} | ||
{{LSL_Conditional | {{LSL_Conditional/ja | ||
|statement=for | |statement=for | ||
|statement_header | |statement_header | ||
|statement_desc= | |statement_desc=いずれのステートメントも空欄にできます。 | ||
|statement_end=ループ | |statement_end=ループ | ||
|statement_end_desc= | |statement_end_desc=シングルステートメントか、ブロックステートメントか、空のステートメントのいずれかにできます。 | ||
|p1_name=初期化|p1_desc='''条件式''' | |p1_name=初期化|p1_desc='''条件式'''をチェックする前に一度だけ実行されます。 | ||
|p2_name=条件式|p2_desc=この文の実行結果が真のときは'''ループ''' | |p2_name=条件式|p2_desc=この文の実行結果が真のときは'''ループ'''が実行されます。 | ||
|p3_name=増分処理|p3_desc='''ループ'''の後に実行され, その後で'''条件式''' | |p3_name=増分処理|p3_desc='''ループ'''の後に実行され, その後で'''条件式'''が再びチェックされます。 | ||
|constants | |constants | ||
|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 | ||
Line 38: | Line 53: | ||
|also_articles | |also_articles | ||
|also_footer | |also_footer | ||
|notes= | |notes=forループは下記のwhileループと同じです。 | ||
<pre> | <pre> | ||
初期化; | 初期化; | ||
Line 50: | Line 65: | ||
|deprecated | |deprecated | ||
|cat1=Conditional | |cat1=Conditional | ||
|cat2 | |cat2= | ||
|cat3 | |cat3 | ||
|cat4 | |cat4 | ||
}} | }} |
Latest revision as of 08: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(条件式) { ループ; 増分処理; }