for文の制御部分の省略

広告

for文の書式は次のようになっていました。

for (初期化; 条件式; インクリメント){
  実行する処理1;
  実行する処理2;
}

初期化、条件式、インクリメントの3つの制御部分を指定し、どのように繰り返しを行うのかを指定するのですが、これらの制御部分は必要無ければ省略することも出来ます。省略する場合は何も記述しません(制御部分の間のセミコロンは必ず記述します)。

例えば条件式に何も書かなかった場合、条件式は常に真(true)となり無限ループとなります。

my $count;

for ($count = 0;; $count++){
  print "count = $count ¥n";
}

このようなプログラムを記述してはいけませんが、for文は無限ループとしておき、for文の中で実行する処理として繰り返しを抜けるような演算子を記述する場合もあります。

また初期化やインクリメントも必要無い場合は省略することが出来ます。全て省略した場合は例えば次のような記述となります。

my $count = 0;

for (;;){
  print "count = $count ¥n";
  $count++
}

制御部分の一部を省略するのは特殊な記述方法ではありますが、まったく使われないわけでもないので覚えておいて下さい。

( Written by Tatsuo Ikura )