配列と繰り返し処理

広告

配列に含まれる要素を順に取り出して処理するといったことはよく行われる処理です。

繰り返し処理としては色々な方法があると思いますが主にはfor文またはforeach文を使います。まずfor文から試してみます。

for文を使う場合にはインデックスを0から最後のインデックスまで変化させて各要素を取り出します。例えば配列名が「@array」だった場合の最後のインデックスは「$#month」で表されますので次のような記述を行います。

my @array = ("東京", "大阪", "名古屋");
for (my $i = 0; $i <= $#array; $i++){
  print "$array[$i]¥n";
}

foreach文の場合はインデックスを変化させる方法と要素を順に取り出す方法があります。インデックスを変化させる場合は次のように記述できます。

my @array = ("東京", "大阪", "名古屋");
foreach my $i(0 .. $#array){
  print "$array[$i]¥n";
}

上記のような記述も可能ですが、foreach文の場合は指定されたリストの要素を順に取り出しますので次のように記述できます。

my @array = ("東京", "大阪", "名古屋");
foreach my $var(@array){
  print "$var¥n";
}

最後の記述方法がよりシンプルとなりますが、場合によって使い分けて下さい。

サンプルプログラム

では簡単なプログラムで確認して見ます。

test11-1.pl

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

my @name = ("加藤", "山田", "林");
foreach (@name){
  print "$_¥n";
}

上記を「test11-1.pl」の名前で保存します(文字コードはUTF-8です)。そしてコマンドプロンプトを起動し、プログラムを保存したディレクトリに移動してから次のように実行して下さい。

配列と繰り返し処理

今回はforeach文の制御変数を省略しデフォルトの変数である「$_」を使用しました。

( Written by Tatsuo Ikura )