foreach文は、キーの子キーを処理対象にして、繰り返し処理を行う場合に用いる。
foreach((key)一時変数名,(key)処理対象キー,[(str)keyType=””],[(int)fRev=false],[(int)fTop=false]){
処理1;
}
- keyTypeにタイプを指定した場合、処理対象キー内の対象キータイプのみ繰り返し対象となる。
- fRevに1(true)を設定際した場合、処理対象キーの末子から処理を行う。
- fTopに1(true)を設定際した場合、処理対象キー自身も繰り返し実行の対象となる。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 |
Kf(_foreachSample){ Pe{ /*キーステーションが最初に実行するキーセット*/ N(_main); } } K(_main){ U{ /* 1行目 */ R(#row1){ /* ボタンを横に3個定義 */ Cb Cb Cb } /* 2行目 */ R(#row2){ /* ボタンを横に3個定義 */ Cb Cb Cb } /* 3行目 */ R(#row3){ /* ボタンを横に3個定義 */ Cb Cb Cb } /* 4行目 */ R(#row4){ /* ボタンを横に3個定義 */ Cb Cb Cb } } Pe{ /* 1行目 */ (int) i = 1; foreach((key)tmp,#row1){ tmp?=i; i++; } /* 2行目 対象キータイプに"R"と"Cb"を指定した場合*/ i = 1; foreach((key)tmp,#row2,"R+Cb"){ tmp?=i; i++; } /* 3行目 fRevに1(true)を指定した場合*/ i = 1; foreach((key)tmp,#row3,"R+Cb",1){ tmp?=i; i++; } /* 4行目 fTopに1(true)を指定した場合*/ i = 1; foreach((key)tmp,#row4,"R+Cb",0,1){ tmp?=i; i++; } } } |
foreachSample.ksf 1.57 KB
実行結果
* 1行目は、keyTypeを指定していないため、コメントも処理対象となり2から表示される
* 4行目は、fTopを指定しているため、行枠に1が表示される