本文へスキップ
BecomeCoder

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

while / until と for ― くり返す

ブラウザで完結

導入

条件が続くあいだくり返すのが while、決まった回数なら C言語形式の for が使えます。「〜になるまで」の until もあります。

説明

while (条件) { ... } は、条件が真のあいだくり返します。中で条件を変えないと無限ループになるので注意します(この学習用エンジンには安全のため上限があり、暴走しても自動で止まります)。

use strict;
use warnings;

my $i = 1;
while ($i <= 5) {
    print $i, " ";
    $i++;              # これを忘れると無限ループ
}
print "\n";            # 1 2 3 4 5

until (条件) は「条件が真になるまで」くり返します(while (!条件) と同じ)。C言語形式の for (初期化; 条件; 更新) も使えます。

use strict;
use warnings;

for (my $i = 0; $i < 5; $i++) {
    print $i;
}
print "\n";            # 01234

my $count = 3;
until ($count == 0) {
    print "残り $count\n";
    $count--;
}

やってみよう

while の条件や for の範囲を変えて、くり返し回数が変わることを確かめましょう。

演習

while を使って、1 から 10 までの合計を求めて表示してください(結果は 55)。

ヒント1を見る

my $sum = 0; my $i = 1; while ($i <= 10) { $sum += $i; $i++; } のあと print "$sum\n";

実際に動かしてみよう

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

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

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