for文を使った繰り返し処理

繰り返し処理の中で指定した回数だけ繰り返し処理を行うには for 文を使うと便利です。ここでは Perl における for 文を使った繰り返し処理を行う方法について解説します。

(Last modified: )

for文を使った繰り返し処理

繰り返し処理は様々な用途で使用されますが、指定した回数だけ繰り返したり、数値をある値からある値まで順に変化させたりする利用方法をよく使います。

例えば 10 回繰り返し処理を行う場合、 while 文を使って記述すると次のようになります。

my $count;

$count = 0;
while ($count < 10){
  # 何かの処理
  $count ++;
}

もちろんこの記述方法でも問題ありませんが、指定した回数だけ繰り返すような場合には for 文を使うと便利です。 for 文の書式は次のようになっています。

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

「初期化」の箇所には for 文が実行される時に一度実行される処理を記述し、条件式には繰り返しを継続するかどうかの条件を記述、そしてインクリメントには1回繰り返しが行われた時に実行される処理を記述します。

for 文では色々な記述方法が行われますが、よく使われる記述として条件判別用の変数を 1 つ用意し、初期化で変数の値を初期化し、条件式では変数に対する条件式を記述し、インクリメントでは変数に格納された値をどのように変化させるのかを記述します。

例えば 10 回繰り返し処理を行う場合、 for 文を使えば次のように記述できます。

my $count;

for ($count = 0; $count < 10; $count++){
  print "count = $count \n";
}

for 文で記述できることは基本的に while 文で記述することが可能ですが、 for 文を使うと初期化や条件式、そして繰り返しの度にどのように値を変化させるのかを 1 行で表すことができます。指定した回数だけ繰り返すような処理を記述するには for 文を使うことで簡潔にまた明確に記述することができます。

なお今までの例では初期化で使用している変数の宣言を for 文の前で行っていますが、初期化の箇所で宣言も合わせて行うことができます。

for (my $count = 0; $count < 10; $count++){
  print "count = $count \n";
}

ただし、この場合は for 文の中で変数 $count を使用することはできますが、 for 文の次へ処理が移ったあとで変数 $count を参照することはできません。変数の宣言位置と有効範囲については別のページで詳しく確認します。

for文の制御部分を省略する

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

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

my $count;

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

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

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

my $count = 0;

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

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

サンプルコード

それでは簡単なサンプルを作成します。

use strict;
use warnings;
use utf8;
binmode STDIN, ':encoding(cp932)';
binmode STDOUT, ':encoding(cp932)';
binmode STDERR, ':encoding(cp932)';

for (my $count = 1; $count < 10; $count++){
  my $result = $count * 2;
  print "2 * $count = $result\n";
}

テキストエディタでプログラムを記述したあと sample.pl という名前で保存します。(文字コードは UTF-8 です)。コマンドプロンプトを起動し、プログラムを保存したディレクトリへ移動したあとで次のように実行します。

perl sample.pl

次のように実行結果が表示されます。

for文を使った繰り返し処理(1)

for 文を使って 1 から 9 まで変数の値を変化させて繰り返し処理を行い、変数の値に 2 を乗算した結果を繰り返し処理の中で画面に表示しました。

-- --

Perl における for 文を使った繰り返し処理を行う方法について解説しました。

( Written by Tatsuo Ikura )

Profile
profile_img

著者 / TATSUO IKURA

プログラミングや開発環境構築の解説サイトを運営しています。