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による四則演算がなんとか出来そうです(^^)


コメントする