カテゴリー
Perl

if文で星座を判定しよう

この章ではif文の応用で星座の判定プログラムを作ります。
長いプログラムですが、ifが連続しているだけです(クリックすると拡大します)。
1111 111初めに$Monthに入っている値をチェックして、その数字に一致するif文の箇所に入ります。この例ですと$Monthは1なので、以下のif文に入ります。
11月ですと、水瓶座と山羊座の2つの星座があるので、これをさらに入れ子のif文で分別して、星座を求めています。
$Dayの値が範囲以外の数値であれば1が出力されます。
また、$Monthの値が12を超えた数値ですと以下の1が出力されます。1

カテゴリー
Perl

if文を入れ子にしよう

この章ではif文を入れ子にする方法について説明します。
if文は入れ子にすることが出来ます。
つまり、if文の中にif文を含めることができるということです。
次のようにif文の中にさらにif文が含まれている構造です。
1$nameは「”手塚”」なので、1はTRUEです。
TRUEによりさらに入れ子の中の次のif文が実行されます。
1$ageは23で、18を超えていますので
1が実行されます。
このように先頭の条件式がTRUEであるならば、さらに条件を絞りたい場合にifの入れ子を使用します。
つまり、この例では「手塚さんであることは確認しましたが、さらに年齢を確かめたいので質問しますね。
手塚さんは18歳を超えていますか?」ということです。

カテゴリー
Perl

if文について理解しようif文の基本構文3

この章でもif文について説明します。
if文の基本構文2の応用で、条件式が複数ある場合、つまり細かい条件を設定したい場合には1を使います。
基本構文1,基本構文2は「条件に合うか合わないか」を判断するのみのプログラムでしたが、1は条件1がFALSEならば条件式2、条件式2もFALSEならば条件式3, 条件式3もFALSEならばelseの実行文というような条件の複数指定です。
具体的には、以下のような書式になります。
2015-05-03_1500052015-05-03_150034上の構文ではelsif を2つしか書いていませんが、いくつでも指定することができます。
では例をみてみましょう。
1$aと$bは同じ数値なので、1が出力されます。

カテゴリー
Perl

if文について理解しようif文の基本構文2

この章でもif文について説明します。
ifの基本構文1では条件式がFALSEの場合には、if文は何の処理も行われませんでした。
そこで、条件式がFALSEの場合にも、何かしらの処理がしたい場合に使用するのが1です。
1では例をみてみましょう。
1条件式は$numが70より小さいならばと言う意味なのですが、この例では$numは70より大きいのでFALSEです。
FALSEなので条件式がFALSEのときに実行される文である1が実行されます。

カテゴリー
Perl

if文について理解しようif文の基本構文1

この章ではif文について説明します。
if文はどのような時に使われるのかを日常生活の中の場面で説明します。
例えば、もし、今日財布にお金が10000円あったらフランス料理にして、20000円あったら中華料理にするなどの選択を繰り返して人は生きていますが、プログラムでもこのような表現ができるのです。
このように条件によって表現を変えることを条件分岐と言います。
1例のif文を見ていただければわかるようにprint文が少し右にずれていますが、これをインデントと言います。
プログラムは誰が読んでも解りやすいように、空白を入れたり、文字を下げたりすることが必要です。
「条件式」には次の表にあるような関係演算子を使って1とか1などを1を使って表現します。
111条件式は条件を満たしていればTRUEを返し、条件を満たしていないならばFALSEを返します。
そして、TRUEの時にif文が実行されます。
では何がTRUEで、何がFALSEであるかを見てみましょう。
1条件式の中では関係演算子の中の1を使用していますが、常識的に考えて125は123より大きいですので、条件を満たしていると考えるのです。
これがTRUEです。
TRUEですので、1が実行されます。
もっと正確に言うと、条件式は条件を満たしていればTRUEになりif文が実行され、条件を満たしていないならばFALSEになりif文は実行されません。
関係演算子を使用する場合には比較対象が数値なのか文字列なのかによって使用する記号は違いますので、表で確認してください。
では次の例を見てみましょう。
「$animal」の中には犬が入っていますので、条件式はTRUEです。
1これは文字列として等しいかどうかを比較しているので関係演算子はeqです。
以下のように数値として等しいかどうかを比較したいのであれば1を使用します。
1次はfalseの例です
1この例の結果は何も表示されません。
なぜかと言いますと1 の部分が条件を満たしていないからです。
つまりFALSEになり,ブロックの中が実行されません。
次の例を見てみましょう。
1上の例は関係演算子を使用しないif文です。関係演算子を使用しない場合のTRUEとFALSEの条件は以下のようになります。
1下の例はすべてFALSEですので、if文は実行されません。1