本文へスキップ
BecomeCoder

Perlコース · 第3章 制御構文 · レッスン10

foreach と範囲演算子 ― リストを1つずつ

ブラウザで完結

導入

数の並びやリストを「1つずつ順に」処理するには foreachfor でも同じ)が便利です。連続する数は範囲演算子 .. で手軽に作れます。

説明

foreach my $x (リスト) { ... } と書くと、リストの要素が順番に $x に入ります。1..5 は「1から5までの並び」を表す範囲演算子です。

use strict;
use warnings;

foreach my $n (1..5) {
    print "$n の2乗は ", $n * $n, "\n";
}

ループ変数を省くと、特殊変数 $_(デフォルトの変数)に値が入ります。Perl らしい書き方です。

use strict;
use warnings;

for ("apple", "banana", "cherry") {
    print "果物: $_\n";
}

やってみよう

1..5 の範囲を変えたり、リストの中身を書き換えたりして、くり返しの様子を確かめましょう。

演習

foreach と範囲 1..5 を使って、1 から 5 までの**積(階乗)**を求めて表示してください(1*2*3*4*5 = 120)。

ヒント1を見る

my $p = 1; foreach my $i (1..5) { $p *= $i; } のあと print "$p\n";

実際に動かしてみよう

下のエディタにPerlを書いて「実行」を押すと、学習用シミュレータが print / say の出力を表示します(本物のperlではなく、教材の範囲を再現した軽量なエンジンです)。スカラ/配列/ハッシュ・制御構文・サブルーチン・正規表現(=~ / s///)なども動きます。本文の例を書き換えて動かしてみましょう(ファイル入出力・リファレンス・CPANモジュールなど一部の機能は対象外です)。

Perl — ブラウザ内で実行(学習用シミュレータ)

Perlの教材サブセットを動かす学習用シミュレータを読み込みます(本物のperlではなく、動きを再現した軽量な自作エンジンです)。
スクロールして表示された時点でも自動で読み込まれます。