今回も引き続きifです。
前回の内容は理解できたでしょうか?

それでは復習として以下の二つのプログラムを打ち込んで結果を確認してみましょう。

1


2

それでは、続きから。↓↓ 
実行結果
3


4


確認できたら、今回の内容に入っていきましょう。

 

多分岐


複雑なif文の例として、うるう年の例を考えてみます。うるう年のルールは
①4で割り切れる年はうるう年
②ただし、100で割り生きれる年はうるう年ではない。
③しかし、400で割り切れる 年はうるう年である。

の3つです。これを図に書くと次のようになります。ここで色のついている部分がうるう年です。
5

この判定方法を図で表したのが流れ図です。簡単なプログラムであれば、すぐにプログラムが書けますが、少し複雑になったら、一度この図を書いて考えてみましょう。

6

この図から書いたプログラムです。
7


もちろん別の考え方もあります。
8

この図からかかれたプログラムです。
9
このようにelse ifを使うことで、多分岐を作ることができます。

ではこのプログラムを書いてみてください。
西暦を和暦に変換できるようにしてください。今回は、昭和(昭和元年=1926年)と平成(平成元年=1989年)のどちらも変換できるようにしなさい。ただし1989年は昭和64年(1月7日まで) と平成元年(1月8日から)なのでどちらも表示するようにしなさい。

解答例
↓ 
↓ 
↓ 
↓ 
↓ 
↓ 
↓ 
↓ 
↓ 
↓ 
10

 

論理和・論理積

if文で範囲を指定しようとして
 if(1 < s < 5)・・・
としてもうまくいきません。これは前から順序良く計算していくため、つまり、
     ①まず、1 < s を計算する
     ②「①の結果] < 5 を計算する 
となるためです。①の大小関係ですが、以前に説明したとおり「真=1、偽=0」 という結果を返します。②では①の結果の「1または0」と5を比較するのですからうまくいくはずがありません。そのために、ifとelseを多数使わなければならないことになります。
 「範囲」のように同時に2つ以上の条件をつけたいときには、論理和(||)と論理積(&&)を使えばいいでしょう。たとえば
10_5
これを使えば条件がスマートに書けることが多くなります。

では、うるう年かどうかを判定するプログラムをこの論理和・論理積 を使って書いてみましょう!

解答例









11

理解できたでしょうか。それではまた、

 
最後に、C言語を初めて書こうと思っているかたにおすすめの技術書を紹介します。
こちらです↓↓

スポンサーリンク