Movable Type:繰り返し処理(Loop)、四則演算

 Forの他に、もう一つ繰り返し処理のタグの一つにLoopタグがあります。

<mt:Loop name="変数名">
  処理
</mt:Loop>

 予約変数の__value__を使うと、自動的に配列変数名が設定されるので、

<mt:For var="i" from="1" to="5">
  <$mt:Setvar name="test[$i]" value="$i"$>
</mt:For>

<mt:Loop name="test">
  <$mt:var name="__value__"$>
</mt:Loop>

 の結果は

1 2 3 4 5

 となります。Forを使うよりもずっと簡単ですね。


 ここでも計算をさせてみましょう。

<mt:For var="i" from="1" to="5">
  <$mt:Setvar name="test[$i]" value="$i"$>
</mt:For>

<mt:Loop name="test">
  <$mt:Getvar name="__value__" op="*" value="5"$>
</mt:Loop>

 とすると、結果は

5 10 15 20 25

 となります。さらに四則演算全部をやると

<mt:For var="i" from="1" to="5">
  <$mt:Setvar name="test[$i]" value="$i"$>
</mt:For>

<mt:Loop name="test">
  <$mt:Getvar name="__value__" op="*" value="5"$>、
  <$mt:Getvar name="__value__" op="+" value="5"$>、
  <$mt:Getvar name="__value__" op="-" value="5"$>、
  <$mt:Getvar name="__value__" op="/" value="5"$><br />
</mt:Loop>

 結果は!

、 、 、
5、 6、 -4、 0.2
10、 7、 -3、 0.4
15、 8、 -2、 0.6
20、 9、 -1、 0.8
25、 10、 0、 1

 ぉぉ!最初の「、 、 、」はナンジャ?
 と思ったら、どうやらLoopタグは配列の0から、つまりtest[0]から始まってしまうようです。
 というわけで修正

<mt:For var="i" from="0" to="4">
  <$mt:Setvar name="test[$i]" value="$i"$>
</mt:For>

<mt:Loop name="test">
  <$mt:Getvar name="__value__" op="*" value="5"$>、
  <$mt:Getvar name="__value__" op="+" value="5"$>、
  <$mt:Getvar name="__value__" op="-" value="5"$>、
  <$mt:Getvar name="__value__" op="/" value="5"$><br />
</mt:Loop>
0、 5、 -5、 0
5、 6、 -4、 0.2
10、 7、 -3、 0.4
15、 8、 -2、 0.6
20、 9、 -1、 0.8

 となり、0〜4の四則演算が全部出来ましたヽ(^。^)ノ
 もっとわかりやすくするために色をつけてあげましょう

<mt:For var="i" from="0" to="4">
  <$mt:Setvar name="test[$i]" value="$i"$>
</mt:For>

<mt:Loop name="test">
  <$mt:Getvar name="__value__"$>*5=<$mt:Getvar name="__value__" op="*" value="5"$>、
  <$mt:Getvar name="__value__"$>+5=<$mt:Getvar name="__value__" op="+" value="5"$>、
  <$mt:Getvar name="__value__"$>-5=<$mt:Getvar name="__value__" op="-" value="5"$>、
  <$mt:Getvar name="__value__"$>/5=<$mt:Getvar name="__value__" op="/" value="5"$><br />
</mt:Loop>
0*5=0、 0+5=5、 0-5=-5、 0/5=0
1*5=5、 1+5=6、 1-5=-4、 1/5=0.2
2*5=10、 2+5=7、 2-5=-3、 2/5=0.4
3*5=15、 3+5=8、 3-5=-2、 3/5=0.6
4*5=20、 4+5=9、 4-5=-1、 4/5=0.8

 これでForとLoopによる四則演算がなんとか出来そうです(^^)

トラックバックURL

このエントリーへのリンク:

このエントリーのトラックバックURL:

コメントする