Javaのif文で条件分岐!and/orで複数条件を指定する方法や三項演算子とは?
  • facebookページ
  • twitterページ
  • 2021.01.22

    Javaのif文で条件分岐!and/orで複数条件を指定する方法や三項演算子とは?

    if文(条件分岐)

    Java制御構文であるif文は、特定の条件の時だけifの中に記述された処理を行うときに使用します。

    if文の構文は次の通りです。

    条件に一致しなかったときに実行される処理を記述する場合は、次のように if else構文で書きます。

    条件式の書き方

    if文の条件式は、結果が tureまたは falseboolean型になるようにします。

    次のような結果を返さないメソッドや、 boolean以外の戻り値や計算結果になるものは、 if文の条件式に指定できません。(コンパイル時にエラーとなります)

    複数の条件式は論理演算子(and・or)を使用

    条件が一つではなく複数になる場合は、論理演算子で複数の条件式を繋げます。

    論理演算子は、and条件の場合「 条件式1&& 条件式2」のようにし、or条件の場合は「 条件式1 || 条件式2」のように記述します。

    and・or条件を組み合わせることも可能です。

    ポテパンダの一言メモ

    if文でAND・OR条件を組み合わせる場合は、上記コード例の通り or条件の部分を括弧で囲むようにする必要があります。

    括弧で囲わず 条件1 && 条件2 || 条件3のようにしてしまうと、条件3が一致した時点で判定結果が trueとなるため、意図しない結果となることがあります。

    ネストしたif文

    ネストとは、処理の中にさらに制御文を含めた入れ子になった状態のことを言います。

    if文についても、次のようにネストさせることができます。

    また、繰り替えし処理ブロックの中で、 if文の制御ブロックをネストさせて、特定の条件の時のみ処理を実行させたりもします。

    次のコードは、変数 iが1〜10までの数値の間、繰り返し処理を行い、 iが偶数の時だけコンソール出力を行う例です。

    複雑にネストしたif文は保守性を低下させる

    前述のように、 if文をネストさせたり、他の制御構文と組み合わせて使うことで、より複雑な条件での処理を行えます。

    しかし、あまりに深く処理をネストするとコードの保守性を低下させます。

    次のコードは、メソッドに渡ってきた引数の内容を ifをネストしそれぞれチェックし、すべての引数の値が正常の範囲内であれば、本当にやりたり処理を実行しています。

    上のコードを見れば分かると思いますが、 if文などのコードブロックが深くネストした処理は、非常に見にくいためコードの保守性を低下させ、今後メソッドの引数が増えた場合、さらに if文のネストが深くなることでしょう。

    このような場合、早期リターン(アーリー・リターン)を使って、引数のチェックでエラーが発生した時点で、メソッドの処理を抜けてしまうことで、コードがシンプルになり保守しやすくなります。

    このように、 if文の数は減ってはいませんが、早期リターン(アーリー・リターン)を使ってチェックエラーになった時点で処理を抜けることで、 if文のネストがなくなりコードがすっきりしたと思います。

    三項演算子でif文を省略

    三項演算子とは、if文を省略した条件分岐によって値を返す構文です。

    三項演算子は条件演算子とも呼ばれます。

    使い方は次の構文の通りで、条件式の値が trueだった時に式1の結果を返し、 falseだった場合に式2の結果を返します。

    条件式は if文と同様に、結果が tureまたは falseboolean型となる条件式で指定し、複数の条件式を指定する場合は &&(AND)や ||(OR)の論理演算子で条件を繋げます。

    if文と異なる点は、三項演算子の式1と式2は値を返す必要があり、さらに式1と式2の戻り値の型も合わせる必要があります。

    また、ifのようにコードブロック(複数行の命令)は実行できません。

    三項演算子の使用例

    それでは三項演算子を使ったサンプルコードを見てみましょう。

    次の例は、年齢が20歳以上の場合は”成人”、20歳未満の場合は”未成年”の文字列を返す三項演算子です。

    &&AND||ORの論理演算子で複数の条件を指定する場合は次のようにします。

    さいごに

    Javaの if文の使い方や、 &&(AND条件)・ OR(OR条件)で複数の条件を繋げる方法などを紹介してきました。

    ifは非常によく使う制御構文で、ネストしすぎたりするとコードの可読性が悪くなるため、使い方を覚えるとともに、作成したコードが後から読みやすい ifの使い方を心がけるようにしましょう。

    【関連記事】
    【Java】初心者必見!if文の使い方を完全解説!



    優良フリーランス案件多数掲載中!
    フリーランスエンジニアの案件をお探しなら
    ポテパンフリーランス

    この記事をシェア

    • Facebookシェア
    • Twitterシェア
    • Hatenaシェア
    • Lineシェア
    pickup









    ABOUT US

    ポテパンはエンジニアと企業の最適なマッチングを追求する企業です。

    READ MORE