CRSの制御構造は、JavaScriptとほぼ同じ文法で定義します。
条件分岐です。
if ( 条件式 ) ステートメント1 [ else ステートメント2 ]
条件式が真のとき、ステートメント1が実行されます。オプションのelse が指定されている場合、条件式が偽のとき、ステートメント2が実行されます。
例
if (item1 == "1") { print("item1は1です"); } else { print("item1は1ではありません"); }
forループです。
for( 初期化式 ; 終了条件式 ; インクリメント式 ) ステートメント
初期化式を実行後、終了条件式が真の間、ステートメントを実行します。次の終了条件を確認する前にインクリメント式を実行します。
ステートメント内でbreak文を実行すると即座にループを終了します。また、ステートメント内でcontinue文を実行すると後続のステートメントを実行せずに次のループに入ります。
例
for (var n = 0; n < 10 ; n++) { print("nは", n, "です"); }
for (var n = 0; n < 20 ; n++) { if (n == 5) continue; if (n == 9) break; print("nは", n, "です"); }
配列などの要素に対応したループです。
for( ループ変数 in 対象変数 ) ステートメント
対象変数の内容を列挙するための値をループ変数に代入しながらステートメントを実行します。対象変数は配列化されたオブジェクト、Arrayオブジェクト、およびイテレータをサポートする一部のオブジェクトを指定することができます。ステートメント内でbreak文を実行すると即座にループを終了します。また、ステートメント内でcontinue文を実行すると後続のステートメントを実行せずに次のループに入ります。
例
var a = new Array("aa", "bb", "cc"); var n for (n in a) { print(a[n], "\n"); }
for in 文では要素の順序は保証されません。
条件ループです。
while( 条件式 ) ステートメント
条件式が真の間、ステートメント実行します。ステートメントの実行前に条件式が評価されます。ステートメント内でbreak文を実行すると即座にループを終了します。また、ステートメント内でcontinue文を実行すると後続のステートメントを実行せずに次のループに入ります。
例
var a = 0; while (a < 10) { print("aは", a, "\n"); a++; }
条件ループです。
do ステートメント while( 条件式 )
条件式が真の間、ステートメント実行します。ステートメントの実行後に条件式が評価されます。ステートメント内でbreak文を実行すると即座にループを終了します。また、ステートメント内でcontinue文を実行すると後続のステートメントを実行せずに次のループに入ります。
例
var a = 0; do { print("aは", a, "\n"); a++; } while (a < 10);
条件により分岐します
switch( 評価式 ) { case 結果1: 実行文 case 結果2: 実行文 : case 結果n: 実行文 default: 実行文 }
評価式を評価しその結果と一致するcaseラベルにジャンプします。もし、defaultラベルが定義されている場合、評価式が他のどのcaseラベルとも一致しなかった場合にジャンプします。
ジャンプしたラベル以降のステートメントを実行しますが、次のcaseラベルに到達してもそのまま続くステートメントの実行を継続します。ステートメントの実行を中断してswitchブロックの最後にジャンプするためにはbreak文を置きます。
例
var data = 1; switch (data) { case 0: print("dataは0です\n"); case 1: print("dataは1以下です\n"); case 2: print("dataは2以下です\n"); case 3: print("dataは3以下です\n"); }
この例の場合、次の結果となります。
dataは1以下です dataは2以下です dataは3以下です
break文の利用例
var data = 1; switch (data) { case 0: print("dataは0です\n"); break; case 1: print("dataは1です\n"); break; case 2: print("dataは2です\n"); break; case 3: print("dataは3です\n"); break; default: print("dataは3です\n"); break; }
実行結果
dataは1です