カテゴリー
Ruby

if文で星座判定をしよう

この章ではif文で星座判定プログラムを作成します。
少し長いプログラムですが、if文が繋がっているだけです。
では例をみてみましょう。9999999999999 このプログラムではユーザーに誕生日の月と日を入力させて、その結果を表示するプログラムです。
では先頭から説明をしていきます。
ユーザーに文字を入力させるにはgetsメソッドを使います(メソッドについては「メソッドについて知ろう」で説明します)。
getsメソッドはユーザーがキーボードから入力した文字列を返します。
文字列を返すので、これを整数値に変換しないとif文の判定ができません。
そこでさらに9を使います。
入力値は文字列として入力されるので、これを整数値に変換するのが9です。
この章はif文の入れ子を説明するために用意したので、これらのメソッドについては「星座判定メソッドを作ろう」「stringクラスについて知ろう」で詳しく説明します。
これらのメソッドで行うことは以下の赤枠の箇所の入力です。
入力するまでプログラムの実行は止まりますので、入力をしてエンターキーを押すと次に進みます。9 では次に進みます。
このプログラムのif文の入れ子を使ってます。
つまり、if文の中にif文が入っている構造です。9 例えばmonthに1が入っているとします。
そうすると上のif文の9がtrueになりますので、さらに入れ子のif文の判定に入ります。
1月ですと、山羊座と水瓶座の2つの星座がありますので、9という形式でif文の入れ子の条件式を作成します。
そして、dayの値が31を超えると「間違い」が出力されます。
まとめますと、入れ子のif文とは始めのif文の条件式にマッチしたものに対して、さらに条件を絞りたい場合に使われます。
つまり、1月という初めの条件式にマッチしたら、さらに山羊座か水瓶座を調べたいので、if文の入れ子を使っています。