カテゴリー
Cシャープ

星座判定をメソッドで作ろう

「if文で星座を判定をしよう」の章ではif文で星座判定のプログラムを作成しましたが、これをメソッドを使って書き換えます。111111111 1例えばmonthに1が入り、dayに19が入っているとします。
そうすると1の箇所はiが0の時にifの条件式がtrueになりますので、以下の入れ子のif文の条件式の判定に入ります。1 「day <= day1[i]」の中のdayには19が入り、「day1[i]」にはday1の0番目の要素である19が入っていますので、条件式はtrueになり、nameにはnames配列の0番目の要素であるやぎ座が入ります。
例えばdayに19ではなく23が入っていると仮定すると1はFALSEになるので、1の条件式の判定に入ります。
ここで「day2[i]」にはday2の0番目の要素である31が入っていますのでTRUEになり、nameには1に該当する星座が入ります。
1周目では1のiには0が入っていますので1となり、nameにはみずがめ座が入ることになります。
ここで1 の説明をします。
「i +1」の箇所の説明をしますと例えばmonthが1で、day が23の場合には
1
が「23<=19」になり FALSEになるので elseifのブロックに入りますが、 1月はやぎ座と水瓶座しかなく、 やぎ座ではないのならば水瓶座 しかないのでnames配列を 1つ進めるために「i +1」で1を 足しています。
「%12」を記述している理由は1の中のiに11が入ると「(i +1)」の箇所が 12になりますが、「%12」の箇所が 無いと仮定するとnames[12]となってしまいますが、実際にnames[12]という 要素はありません。
そこで「%12」で余りを0(12割る12で余り0)にして
「やぎ座」が出るようにしています。
つまり、該当する以下の余りの数字がnames配列の添え字になり、その該当するデータがnameに入ります。11 結果は以下の通りです。1