forall文は、キーのすべての子孫キーを処理対象にして、繰り返し処理を行う場合に用いる。
forall((key)一時変数名,(key)処理対象キー,[(str)keyType=””],[(int)fRev=false],[(int)fTop=false]){
処理1;
}
使用方法は、foreach文と同様です
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 |
Kf(_forallSample){ Pe{ /*キーステーションが最初に実行するキーセット*/ N(_main); } } K(_main){ /* スタイル定義 については、 https://ki.kathenas.com/style/362/ */ Se{ @s1{ ~border{ ~color="#ff408000"; ~width="1"; ~style="solid"; } } } U{ /* 1行目 foreach */ R(#row1){ /* ボタンを横に3個定義 */ C(#col1,@s1) C(#col2,@s1){ /* ←foreachの場合、R(#row1)の子キーは対象 */ R(@s1) /* ←foreachの場合、R(#row1)の孫キー以下は対象外 */ R(@s1) R(@s1) } C(#col3,@s1) } /* 2行目 forall */ R(#row2){ /* ボタンを横に3個定義 */ C(#col1,@s1) C(#col2,@s1){ /* ←forallの場合、R(#row1)の子キーは対象 */ R(@s1) /* ←forallの場合、R(#row1)の孫キー以下も対象 */ R(@s1) R(@s1) } C(#col3,@s1) } } Pe{ /* foreachの場合 */ (int) i = 1; foreach((key)tmp,#row1,"C+R"){ tmp?=i; i++; } /* forallの場合 */ i = 1; forall((key)tmp,#row2,"C+R"){ tmp?=i; i++; } } } |
実行結果
*1行目はforeachで値を設定しているため、2列目内の3段の枠には値が設定されない
*2行目はforallで値を設定しているため、2列目内の3段の枠にも値が設定される