三項演算子を使った条件分岐

三項演算子を利用すると条件式が真の場合と偽の場合で異なる値を返すことができます。条件に応じて行えるのは値を返すことだけですが、非常に簡潔に記述することができます。ここでは Perl で三項演算子を使った条件分岐を行う方法について解説します。

(Last modified: )

三項演算子の使い方

三項演算子は if...else 文を簡略化したような演算子です。書式は次のようになっています。

条件式 ? 真の時の値 : 偽の時の値;

三項演算子では条件式を評価し、真(true)だった場合には真の時の値を、偽(false)だった場合には偽の時の値を返します。

実際のプログラム例としては次のようになります。

my ($seiseki, $kekka);

$seiseki = 75;
$kekka = $seiseki > 60 ? "合格" : "不合格";
print $kekka;

今回の例では条件式である $seiseki > 60 を評価し、真だった場合には「合格」を、偽だった場合には「不合格」を返します。結果的に今回は「合格」と言う値が変数 $kekka に格納されます。

三項演算子は、このように条件によって値を選択したい場合に簡略化して記述できる演算子です。三項演算子は if 文を使って記述することもできます。

my ($seiseki, $kekka);

$seiseki = 75;
if ($seiseki > 60){
  $kekka = "合格";
}else{
  $kekka = "不合格";
}
print $kekka;

三項演算子は慣れないと分かりにくいのですが、 if 文を使って記述するよりも簡潔に記述できる場合も多いので慣れてくれば便利な演算子です。

サンプルコード

それでは簡単なサンプルを作成します。

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

my ($seiseki, $kekka);

$seiseki = 75;
$kekka = $seiseki > 60 ? "合格" : "不合格";
print "得点 $seiseki は $kekka です\n";

$seiseki = 58;
$kekka = $seiseki > 60 ? "合格" : "不合格";
print "得点 $seiseki は $kekka です\n";

テキストエディタでプログラムを記述したあと sample.pl という名前で保存します。(文字コードは UTF-8 です)。コマンドプロンプトを起動し、プログラムを保存したディレクトリへ移動したあとで次のように実行します。

perl sample.pl

次のように実行結果が表示されます。

三項演算子を使った条件分岐(1)

三項演算子を使って条件式が真と偽の場合で異なる値を返しました。

-- --

Perl で三項演算子を使った条件分岐を行う方法について解説しました。

( Written by Tatsuo Ikura )

Profile
profile_img

著者 / TATSUO IKURA

プログラミングや開発環境構築の解説サイトを運営しています。