最新の「新着記事」はここから New!
2008-09-11
インクリメント演算子とデクリメント演算子
ある数値に1を加えたり、1を引いたりする演算には、インクリメント演算子とデクリメント演算子を利用することができます。特別な記述が用意されています。++$i や ++$i という記述を1を加えることができ、--$iや$i--という記述で1を減算することができます。
# インクリメント $num++; # デクリメント $num--;
インクリメントとデクリメントの書き方は++あるいは--を変数の前につけるか後につけるかで2とおりあります。演算子を変数の前につけるか後ろにつけるかで、文脈によって意味が変わるので注意が必要です。
my $i = 0; my $k = ++$i;
my $i = 0; my $k = $i++;
上記の二つは$kに入る値が異なります。最初の場合は、$kには、1が入ります。二つ目の場合は、$kには0が入ります。
前に++をおいた場合は、代入する前に$iが1加算され、後ろに++をおいた場合は、代入が行われた後に$iに1が加算されます。
代入の場合で解説しましたが、関数に値を渡す場合の例も挙げておきます。
# funcの引数には、$iに1を加算したものが渡される。 func(++$i); # funcの引数には、$i が渡され、その後に1加算される。 func($i++);
サンプル
インクリメント演算子とデクリメント演算子を使ったサンプルです。
use strict; use warnings; # 評価される前に1プラスされる。 print "(1)前置のインクリメントとデクリメント\n"; my $i = 0; print ++$i . "\n"; print $i . "\n"; print --$i . "\n"; print $i . "\n"; # 評価された後に1プラスされる。 print "(2)後置のインクリメントとデクリメント\n"; $i = 0; print $i++ . "\n"; print $i . "\n"; print $i-- . "\n"; print $i;


