本文へスキップ
BecomeCoder

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

if / elsif / else / unless ― 条件で分ける

ブラウザで完結

導入

「もし〜なら」で処理を分けるのが if です。3つ以上に分けたいときは elsif を重ねます。Perl には「〜でなければ」の unless もあります。

説明

条件は ( ) で囲み、処理は { } でまとめます。Perl では波かっこ { }省略はできません(1文でも必要)。elsif の綴りに注意(else if ではありません)。

use strict;
use warnings;

my $score = 75;

if ($score >= 90) {
    print "優\n";
} elsif ($score >= 70) {
    print "良\n";
} elsif ($score >= 60) {
    print "可\n";
} else {
    print "不可\n";
}

unless (条件)if (!条件) と同じで、「条件が偽のとき」に実行されます。否定の ! を使うより読みやすくなることがあります。

use strict;
use warnings;

my $logged_in = 0;
unless ($logged_in) {
    print "ログインしてください\n";
}

やってみよう

$score の値を変えて、実行される枝が切り替わることを確かめましょう。

演習

my $n = 10; について、if$n % 2 == 0 なら 偶数、そうでなければ 奇数 と表示してください(結果は 偶数)。

ヒント1を見る

if ($n % 2 == 0) { print "偶数\n"; } else { print "奇数\n"; }

実際に動かしてみよう

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

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

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