ミスティーネットPerl・CGI講座 パール・CGIレッスン MISTY-NETレンタルサーバー・PERLプログラミング講座 CGI&PERL究極のレシピ

管理運営:有限会社ミスティーネット

| HOME | ご利用について | 推奨環境 | リンクに関して | 免責/規約 | お問合せ | ミスティーネット | リンク集 |
Perl言語リファレンス

ミスティーネットPerl・CGI講座/基本編
ミスティーネットPerl・CGI講座/基本編
始めに 始めに
変数について 変数について
処理の制御1 処理の制御1
処理の制御2 処理の制御2
配列の処理 配列の処理
ハッシュの処理 ハッシュの処理
数値の扱い 数値の扱い
文字の扱い 文字の扱い
時間の処理 時間の処理
サブルーチン サブルーチン
ファイルの処理 ファイルの処理
ディレクトリの処理 ディレクトリ処理
CGIについて CGIについて
漢字の処理 漢字の処理
    (文字コード)
Cookie の処理 Cookie の処理
正規表現1 正規表現1
正規表現2 正規表現2
演算子について 演算子について
ライブラリ ライブラリ
デバッグ デバック
環境変数について 環境変数
ミスティーネットPerl・CGI講座/基本編

ミスティーネットPerl・CGI講座/応用編
ミスティーネットPerl・CGI講座/応用編
カウンターを作ってみよう カウンターを
     作ってみよう!
ミニゲームを作ってみよう ミニゲームを
     作ってみよう!
ミスティーネットPerl・CGI講座/応用編

ミスティーネットPerl・CGI講座/WEB講座一覧
ミスティーネット
HTML講座 HTML講座
スタイルシート講座 スタイルシート講座
JavaScript講座 JavaScript講座
UNIXコマンド講座 UNIXコマンド講座

ミスティーネット
ラブラブメールでツーショット

人気サイトランキング

人気サイトランキング

8daysランキング

  HOME >> 処理の制御1
  1. もし〜なら (条件により処理を分岐する)
  2. もし〜でないなら (否定の条件分岐)
  3. 条件文を使ってプログラムを書いてみよう!
  4. 条件演算子を使った条件分岐
■ もし〜ならば (条件により処理を分岐する)
「もしAの条件ならBの処理を行なう」 というように、条件によって処理内容を選択したい場合には、「if」 文を使います。
「if」 文はPerl の中心的な条件文ですのでこれからたくさん使うことになると思います。
しっかりマスターしてください。
「if」 文の書式には下記の3つがあります。
1.if (条件式) { 処理内容 }
2.if (条件式) { 処理内容 } else { 処理内容 }
3.if (条件式) { 処理内容 } elsif (条件式) { 処理内容 } else { 処理内容 }
1では、条件が満たされている場合のみ処理を実行します。
2では、条件が満たされていない場合に、「else」 の処理を実行します。
複数の条件に対してそれぞれ処理を分けたい場合には、3のように「elsif」 を使って処理を選択します。 「elsif」 は処理の数だけ複数回使用できます。

[分岐処理のイメージ]



[真偽の判定について]
分岐の条件には真偽値を使うことも出来ます。真偽値は、文字列や数値を 「真」 か 「偽」 かで判断します。 文字列が「空」 の場合や数値が 「0」 か 「空」 の場合には偽、それ以外の場合には真と判断されます。 「if」 文では、条件式が 「真」 の場合のみ処理を実行します。


■ もし〜でないなら (否定の条件分岐)
unless」 は、「if」 とは反対の条件文です。
「もしAでないならBの処理を行なう」 というような条件処理を行なう際に使います。
「unless」 文の書式には下記の3つがあります。
1.unless (条件式) { 処理内容 }
2.unless (条件式) { 処理内容 } else { 処理内容 }
3.unless (条件式) { 処理内容 } elsif (条件式) { 処理内容 } else { 処理内容 }
基本的には 「if」 と同じですが、条件が満たされないときのみ処理を実行します。
具体的には下記のような使い方となります。

$a = 1;
unless ( $a == 3 ) {
    print '$a は3ではありません。';
}

【表示結果】
1 は 3ではありません。
「==」 は、「等しければ」を意味します。 → 数値演算子について

この場合、$a の値は1ですので 「$a は3ではありません」 と表示されます。



■ 条件文を使ってプログラムを書いてみよう!
「if」 の使い方が分かったところで、実際に「if」 を使ったプログラムを書いてみましょう。
下記がそのプログラムです。
ユーザーに0か1の数字を入力してもらい、入力された文字が「0の場合」、「1の場合」、「それ以外の場合」 で違う処理を行なうようにしています。
では、実際にプログラムを作って見ましょう。
ファイル名は「test.pl」 で 「c:\windows」 フォルダに保存してください。

[test.pl]
#!C:/Perl/bin/perl

print "0か1を入力してください::";
$input = <STDIN>;
chomp $input;

if ( $input == 0) {
    print "0が入力されました。\n";
}
elsif ( $input == 1 ) {
    print "1が入力されました。\n"
}
else {
    print "無効な値が入力されました。\n";
}
exit;















ActivePerlのパスを指定

入力を促がすメッセージを表示
入力された値を変数に代入。
入力値の改行文字を切り取る。

入力が 「0」 と等しければ
入力が 「0」 の場合のメッセージ

入力が 「1」 と等しければ
入力が 「1」 の場合のメッセージ

入力がその他の場合
入力がその他の場合のメッセージ

プログラム終了の合図
「==」 は、「等しければ」を意味します。「\n」 は改行の意味です。 → 数値演算子について
<STDIN>は、標準入力を表します。デフォルトはキーボードからの入力となっています。


ファイルが作成できたら、実際にプログラムを動かして見ましょう。
動作確認は DOSプロンプトを使って行ないます。
DOSプロンプトの起動は、「スタート」→「プログラム(P)」→「アクセサリ」→「MS-DOS プロンプト」 で起動できます。
起動したら、次のように入力して、「ENETR」キーを押してください。

C:\WINDOWS>perl test.pl

プログラムが起動して、下記のメッセージが表示されると思います。

0か1を入力してください::

ここで 「0」 を入力して 「ENTER」 キーを押します。すると、下記のメッセージが表示されます。

0が入力されました。

入力が 「1」 の場合は、

1が入力されました。

その他の入力の場合は、

無効な値が入力されました。

と表示されます。
入力された値によって、きちんと処理が分けられていることが分かります。

また、気づいた方もいると思いますが、何も入力せずに 「ENTER」キーのみ押した場合には
下記の表示となります。

0が入力されました。

Perl で空の値が入力された場合には、数値として判定した時に「0」 の値として扱われます。
そのため、0が入力された時のメッセージが表示されます。



■ 条件演算子を使った条件分岐
簡単な処理の分岐の場合には、条件演算子を使うことが出来ます。
if 文を使うと3・4行になるプログラムソースを1行で完結することが出来ます。
[書式] 式 ? A : B

式の値が真であれば、Aの値が返されて、偽であればBの値が返されます。
$price = 900;

print $price >= 1000 ? "値段が高すぎます" : "適正な価格です";
ここでは、変数 $price の値によって表示するメッセージを変えています。

変数 $price の値が1000以上の場合 「値段が高すぎます」 と表示。
1000未満の場合は 「適正な価格です」 と表示されます。
この場合、変数 $price の値は900ですので 「適正な価格です」 と表示されます。





← 前のページへ戻る 次のページへ →


| HOME | ご利用について | 推奨環境 | リンクに関して | 免責/規約 | お問い合わせ | ミスティーネット |
(C)Copyright 2002 (有)ミスティーネット Inc. All Right Reserved.