範囲演算子を使ったリストの作成
リストを作成する時に数値を順番にならべるようなリストを作成する場合は範囲演算子を使うと便利です。数値が 1 つずつ増加するような数値の並びを自動で作ってくれます。ここでは Perl で範囲演算子を使ったリストの作成方法について解説します。
(Last modified: )
範囲演算子の使い方
リストを作成する時に数値を順番にならべるようなリストもよく使用されます。例えば 10 から 15 までの 1 つずつ増加するリストなどです。
my @count = (11, 12, 13, 14, 15);
このように整数の値で 1 つだけ増加していく連続した数値のリストを作成する場合には範囲演算子を使用すると便利です。書式は次の通りです。
(開始数..終了数)
リストの中で開始する数値と終了する数値を ..
で結んで記述します。例えば次のように記述します。
my @count = (11..15);
これは次のように記述した場合と同じです。
my @count = (11, 12, 13, 14, 15);
なお増加する値は 1 だけです。減算させることもできません。
範囲演算子はリストの中の 1 つの要素として扱えますので、他の要素や別の範囲演算子と組み合わせて記述すること可能です。
my @count = (1..5, 10, 15, 31..33);
これは下記のように記述した場合と同じです。
my @count = (1, 2, 3, 4, 5, 10, 15, 31, 32, 33);
範囲演算子の数値が整数でなかった場合
範囲演算子の開始数や終了数が整数ではなかった場合、小数点以下が切り捨てられます。次の例を見てください。
my @count = (5.6...8.2);
開始数および終了数が共に整数ではありません。このような場合は小数点以下が切り捨てられるため、次のように記述した場合と同じです。
my @count = (5...8);
開始数および終了数も変更される点に注意してください。
それでは簡単なサンプルを作成します。
use strict; use warnings; use utf8; binmode STDIN, ':encoding(cp932)'; binmode STDOUT, ':encoding(cp932)'; binmode STDERR, ':encoding(cp932)'; my @num = (10..14,28..31); for (my $i = 0; $i < @num; $i++){ print "$num[$i]\n"; }
テキストエディタでプログラムを記述したあと sample.pl という名前で保存します。(文字コードは UTF-8 です)。コマンドプロンプトを起動し、プログラムを保存したディレクトリへ移動したあとで次のように実行します。
perl sample.pl
次のように実行結果が表示されます。
範囲演算子を 2 つ使用してリストを作成し、配列の初期化に使用しています。そのあとで配列の各要素に格納されている値を取得して画面に出力しました。
なお Perl では配列変数名を参照すると配列の要素数を取得することができます。配列の要素数を取得する詳しい解説については「配列の要素数を取得する」を参照されてください。
-- --
Perl で範囲演算子を使ったリストの作成方法について解説しました。
( Written by Tatsuo Ikura )
著者 / TATSUO IKURA
これから IT 関連の知識を学ばれる方を対象に、色々な言語でのプログラミング方法や関連する技術、開発環境構築などに関する解説サイトを運営しています。