1ヶ月でWebデザイン・プログラミングスキルをオーダーメイドのカリキュラムで学べるスクール、それがWebCamp。

【初心者向け】C言語教室~if文を学ぼう3~

Pocket


複雑な条件分岐を行うためのスキルを学ぶ

今回はif文における、複雑な条件指定を勉強していこうと思います。

前回や前々回では非常にシンプルな条件での解説をしてきました。

しかし、実際には複雑な条件分岐を必要とされるシチュエーションもあります。

例題を出しながら学んでいきましょう。

例題「うるう年であるかどうかの判定プログラム」

プログラムの条件判定において、よく例題にされるのがうるう年です。

指定した年がうるう年であるかどうかの判定プログラムをif文で作成してみましょう。

そのためにも、まず知るべきは「うるう年の条件」です。うるう年の条件は下記となります。

・4で割り切れる西暦であること

・ただし、100で割り切れるのはうるう年ではない

・100で割り切れても400で割り切れたらうるう年である

これを素直にプログラムにすると下記になります。

 

このプログラムで問題はないのですが、少し煩雑な書き方と言えます。

正直もう少しスマートな書き方の方が良いです。

仮にprintfの部分である、判定結果の処理を書きかえる際に少し面倒ですし、ひょっとしたら修正する際にバグが起こる可能性もあります。

また、if文の構造が深くなっているので、これ自体を嫌うプログラマーもいます。

では、どのようにしてスマートな書き方にするか?その答えはANDとORを使った条件判定を取り入れることです。

このANDとORを使った例を見てみましょう。

 

ANDとはif文の中にある&&であり、ORとは||の部分となります。

先ほどのプログラムに(year % 4 == 0 && year % 100 != 0)と書かれている部分があります。

これは4で割り切れて、且つ100で割り切れないという意味になります。ANDとはこの「且つ」の部分となります。

ではORはどのような意味なのか?

先ほどの例題では|| year % 400という部分がありました。

「4で割り切れて、且つ100で割り切れない」の後に||を入れることで、「または」400で割り切れるという意味になります。

(year % 4 == 0 && year % 100 != 0) || year % 400 == 0のプログラムの意味は「4で割り切れて、且つ100で割り切れない」または「400で割り切れる」となります。

ANDやORを使ってスマートなプログラムに!

if文は複雑な条件になり、if文の中にif文を入れ過ぎると複雑で読みにくくなってしまう場合があります。

どのようなコーディングをするかは目的次第ではありますが、行数を短く、分かりやすくすることでスマートなプログラムとなりますので意識して取り入れてみましょう。

投稿者:プロスタ編集部

  • このエントリーをはてなブックマークに追加
  • follow us in feedly

おすすめスクール

全国30校舎で展開されるヒューマンアカデミーのWeb講座は修了者数4万人超、講師とカリキュラムの満足度がどちらも9割を超えています。就職や転職に必要なレベルの実務スキルを身に付けられます。

初心者がプログラミングで挫折しない学習方法を無料動画で公開中。オンラインに特化したプログラミングスクール「TechAcademy(テックアカデミー)」が解説。

この記事が気に入ったら
いいね!しよう

プロスタの最新情報をお届けします

あわせて読みたい

関連記事

イチ押しランキング

1リナックスアカデミー

リナックスアカデミー

2システムアーキテクチュアナレッジ

システムアーキテクチュアナレッジ
ページ上部へ戻る