里々でループ処理†ループはプログラムの基本中の基本。 単語内でのループ†
サンプル†
(call,格納関数,前半文字列,変数の初期値,後半文字列,増加量,最大値)
*installedghostname $引数区切り追加【タブ】(sprintf,%c,4) $仲間たち【タブ】(call,格納関数,R,0,,1,0) *OnBoot $起動中ゴーストリスト【タブ】(call,格納関数,FMO,0,name,1,(起動しているゴースト)) @格納関数 (set(sprintf,%c,4)変数(sprintf,%c,4)(if(sprintf,%c,4)(変数「変数」の存在)==1(sprintf,%c,4)(変数)(sprintf,%c,4)(A1)))((A0)((if(sprintf,%c,4)(compare(sprintf,%c,4)(A0)(sprintf,%c,4)FMO)==1(sprintf,%c,4)zen2han(sprintf,%c,4)han2zen)(sprintf,%c,4)(変数)(A2)))(sprintf(sprintf,%c,4)%c(sprintf,%c,4)3)(set(sprintf,%c,4)変数(sprintf,%c,4)(if(sprintf,%c,4)(is_empty(sprintf,%c,4)((A0)((if(sprintf,%c,4)(compare(sprintf,%c,4)(A0)(sprintf,%c,4)FMO)==1(sprintf,%c,4)zen2han(sprintf,%c,4)han2zen)(sprintf,%c,4)(calc(sprintf,%c,4)(変数)+(A3))(A2))))==(if(sprintf,%c,4)(if(sprintf,%c,4)(A4)==0(sprintf,%c,4)-1(sprintf,%c,4)(変数))>=(A4)(sprintf,%c,4)1(sprintf,%c,4)0)(sprintf,%c,4)(calc(sprintf,%c,4)(変数)+(A3))))(call(sprintf,%c,4)(if(sprintf,%c,4)(変数「変数」の存在)==1(sprintf,%c,4)格納関数(sprintf,%c,4)nop)(sprintf,%c,4)(A0)(sprintf,%c,4)(A1)(sprintf,%c,4)(A2)(sprintf,%c,4)(A3)(sprintf,%c,4)(A4)) これで下のような配列で保存される $仲間たち=さくら{3バイト値}Emily/Phase4{3バイト値}双葉{3バイト値}イクサイスゼロ{3バイト値}「自分の名前」{3バイト値} $起動中ゴーストリスト=「自分の名前」{3バイト値}Emily/Phase4{3バイト値} ふつうのループ†カウントダウンするループ処理で比較してみる
しかし、以下のようにジャンプする回数を減らすことで耐久性をアップできる * $ループ回数【タブ】100 >ループ処理 *ループ処理 >脱出【タブ】(ループ回数)==0 :(ループ回数) $ループ回数【タブ】(calc,(ループ回数)-1) >脱出【タブ】(ループ回数)==0 :(ループ回数) $ループ回数【タブ】(calc,(ループ回数)-1) >脱出【タブ】(ループ回数)==0 :(ループ回数) $ループ回数【タブ】(calc,(ループ回数)-1) >脱出【タブ】(ループ回数)==0 :(ループ回数) $ループ回数【タブ】(calc,(ループ回数)-1) >脱出【タブ】(ループ回数)==0 :(ループ回数) $ループ回数【タブ】(calc,(ループ回数)-1) >ループ処理 *脱出 :終了ー
100 99 98 : 尚、以下の様な方法で列挙も可能となる * $ループ回数【タブ】100 >ループ処理 *ループ処理 >脱出【タブ】(ループ回数)==100 $ループ回数【タブ】(calc,(ループ回数)-1) $表示文字列【タブ】(if,(変数「表示文字列」の存在)==0,(ループ回数)\n,(表示文字列)(ループ回数)\n) \![raise,ループ処理] *脱出 :(表示文字列) 終了ー |