へたれCGI講座



15:真偽とif文(その1)


■真と偽(TrueとFalse)■
 今回はまず真と偽という概念から説明しましょう。
簡単ですが、結構使います。

偽(False) 0、または"0"、または""(空文字)
真(True) 1や文字列、または上記(偽)以外

 これから説明するif構文は、簡単に言うと「もし●●だったら■■する」という構文なのです が、例えばBBSなどを作成する際、名前の欄が空だったら偽になりますよね。
その時に「名前を入力してください」などと出力するために、真と偽の判断が必要になったり します。真と偽の概念、覚えておいてください。


■if文■
 先ほども説明したようにif文とは、「もし条件にあてはまれば、ある処理をし、あてはまらな ければ別な処理をする」というようなものです。
また、条件はいくつでも可能で、「もし条件1にあてはまれば処理1,条件2にあてはまれば 処理2、それ以外は処理3」ということもできます。要するに条件分岐ですね。

今回も具体例で話してみましょうか。
「もし男性(条件1)だったら男子トイレ(処理1)に入り、女性(条件2)だったら女子トイレ (処理2)に入り、それ以外(条件3)だったらエラー(処理3)」というような感じです。
条件や処理はもちろんプログラムをする人が自由に設定できます。
概念は理解できたでしょうか?

 では実際の記述方法を見てみましょう。

if( 条件 ){
    処理1;
}
else{
    処理2;
}


 うーん、見づらいですねぇ。でもこれが標準の書き方です。
実際は処理にずらずらと命令文が入るのですが、今回はこれで我慢してください。
今回の記述では
「もし条件1にあてはまるときは処理1を行い、それ以外は処理2を行う」
という意味です。簡単な英語ですが「if」「もしも」「else」「その他」ですね。

 次は各名称を説明しましょう。
まず、『{ 』と『 }』で囲まれた、処理の部分。ここは「ブロック」といいます。
そして、『{ 』と『 }』、これ自体を「ブレース」といいます。
「ブレース」って息継ぎって意味なんでしょうかね?
(注:まったくどうでもいい疑問ですが、補足出来る方いらっしゃいましたらお願いします)

まぁ、名称は本を読むときに必要なだけと毎回言ってますが、今回も同じく、おまけとして
記述してみました。
 で、ブロックの中(処理部分)は作成するときに、TABキーなどで少し右にずらした形で書く
のが常識みたいです。恐らく見やすさとかの問題だと思います。(たぶん)
「イヤだ、俺はそのまま書く!」って人はそのまま書いても問題ないと思います。
が、私たちは初心者ですので常識外れなことをやると、思わぬ落とし穴にはまりかねない
ので、一応右にずらす癖を付けましょう(笑。
 ちなみに、このTABなどで右にずらす行為を「インデントする」といいます。

-----追記開始-----(03/02/04追記)
インデントする場合、TABキーを使う癖をつけましょう。
空白を使ってしまうとエラーになる場合があります。
見やすさのための空白はTABキー。慣れると楽ですよ^^
-----追記終了-----

次は、条件がいくつもある場合の記述方法を見てみましょうか。

if( 条件1 ){
    処理1;
}
elseif( 条件2 ){
    処理2;
}
else{
    処理3;
}


 これは、「もし条件1に当てはまったら処理1を行い、条件2にあてはまったら処理2を 行い、それ以外は処理3」という意味です。
elseif(条件)で増やすわけです。elseifは何回でも利用可能です。
またこんなのもありです。

if( 条件 ){
    処理;
}

 これは「もし条件だったら処理をする」だけです。他は何もしない。こんなのもありです。

-----追記開始-----03/02/12
 if文に関する追記です。
{ }に囲まれた部分をブロックという、と書きましたが、もっと詳しく書くとifの後に続く{ }を
ifブロックといい、else直後の{ }をelseブロック、elseif直後の{ }をelseifブロックといい ます。また全体をif-elseif-elseブロックといいます。
 また、このブロック内にif-elseif-elseブロックを入れることも可能です。これを入れ子
いいます。今回はif文の入れ子と言った方が正確ですね。

 一応実際の記述方法も記しておきましょうか。簡単な例にしてみました。

if( 条件1 ){
    if( 条件2 ){
        処理1;
    }
    else{
      処理2;
    }
}
else{
    処理3;
}


解説:もし条件1に当てはまったら、条件2を確認、条件2にあてはまったら処理1を行う。
条件2に当てはまらなかったら処理2を行う。
最初の条件1に当てはまらなかった場合は処理3を行う。

 ややこしい感じがしますが、きちんと目で追って、どう進むのか確認してみてください。

また、ここまでくると結構「{ }」が多くなってますよね?
できるだけ最初の「{ 」を記入したときに閉じる「 }」も書いてしまってください。
書き忘れって以外と多いものです。 慣れれば結構簡単な構文なので、頑張りましょう!
-----追記終了-----

 今回はこの辺にしておきましょうか。
次回は比較演算子を交えて、実際にプログラムを書いてif文を勉強してみましょう。(たぶん)



BACK NEXT
CGI-Index TOP