ぱかぽこお馬さんPumpkinNet
 わいわいコミュニケーションネットワーク 
PumpkinNet CGI工房へようこそ。
Perl基礎講座(2)


CGI工房ホーム
スクリプト講座ホーム
CGIってなに?

(Introduction)
Perlをゲットしよう!
基礎講座(1)
変数の扱い
基礎講座(2)
制御構造文 if
基礎講座(3)
変数の複数形(1)
基礎講座(4)
ループの処理
基礎講座(5)
変数の複数形(2)
Perl基礎講座(2)
制御構造 if文について説明します。

制御構造文って?

ある式や、ある値をもとにプログラムの流れを作っていくための文です。
もしさぁ、こうだったら、こうしなさいよ。
ということを書いていくわけです。

スクリプトの書き方は
if (式) { }というように書きます。
if(もし) 式がtrue(真)であるなら、ブレース{ } 内の文を実行です。

実際に書くとこうなります。
if ($a == 0) { print "value is 0"; }
条件に合致する条件、$aが0であったら、value is 0と表示します。

もし 〜ならば〜 {ブレース}というのを覚えてください。

前回、$a = $b;($a に$bの値を代入)という風に基礎講座(1)で書きましたが、
if文内でのイコールは=ではなくて、==と書くことに注意してくださいね。
この章の一番下に、この「比較」をするための演算子一覧をつけておきますので、
後で目を通してください。

更に複雑な制御構造文 elsif else
・もし、$aが0ならば、value is 0と表示する
・もし、$aが2ならば、value is 2と表示する
・それ以外ならば、value errorと表示する
というように「複数の条件」によって制御が移り変わるような場合には、
if1つだけでは制御ができなくなるので、elsifやelseを使います。
上の条件で合致するスクリプトはこのように書くことができます。
if ($a == 0 ) { print "value is 0"; }
elsif ($a == 2 ) { print "value is 2"; }
else { print "value error"; }
第一の条件式ifが合致しなければ、elsif文が実行される。
それでも条件に合致しなければ、else { ブレース } になる、という流れです。

if文の反対の意味を持つ、unless
if文は、もし「真」であるならば〜をせよ、という文でした。
unless文ではこの意味が逆になり、もし「真」でなければ〜をせよ
という制御を行うことができます。
unless ($a == 0 ) { print "value isn't 0"; }
$aが0で「なければ」 value isn't 0と表示されるわけです。
ただし、unlessの場合は、ifのelsifにあたるようなものがありません。

比較演算子一覧

比較演算子、といわれても?かもしれません。
先ほど書いた == というのも「比較演算子」の1つであり、右辺と左辺を「比較」して
等しいということを演算して、等しければ真を返すなどといった条件式に使われます。

==は右辺と左辺が「数値」として比較して等しければ真、ということで、
文字列として比較したい場合は文字列を比較するための比較演算子
eqを使います。
$a ="aiueo"
if ($a eq "kakikukeko") { print "a is kakikukeko"; }
elsif ($a eq "aiueo") { print "a is aiueo"; }
else { print "value not scopes.."; }

「演算子にはイロイロな種類があります」が、
まずはこの比較演算子を覚えましょう。
比較演算子リスト
比較数値文字列戻り値
等しい==eq左辺と右辺が等しければ真
等しくない!=ne左辺と右辺が等しくなければ真
より小さい<lt左辺が右辺より小さければ真
より大きい>gt左辺が右辺より大きければ真
より小さいか等しい<=le左辺が右辺より大きくなければ真
比較<=>cmp等しければ0
左辺が大きければ1
右辺が大きければ-1
この中の比較は値のソートをするsortなどで威力を発揮するもので、
それ以外ではあまり使いません。

真なのか、偽なのかこれでプログラムは条件によって
進行していきます。

制御構造文if、比較演算子==などを使用して、試してみてください。
言語ごとに書き方が変わったりしますが、この制御構造はプログラムへ踏み出すための
第一歩の部分でとても重要です。



CGI工房 ホーム  更新履歴  掲示板系  チャット系  メール系  その他スクリプト  スクリプト講座  情報交換BBS
ご意見・ご要望は掲示板もしくは、メールにて:info@pumpkinnet.to

Copyright (C) 1986〜2004 Pumpkinnet All Rights Reserved
PumpkiNet-MiniBanner