Java if文 条件分岐を行うサンプル

Javaのif文のサンプルです。条件で処理を分岐する時に使用します。

if文 if文とは / if文のサンプル / String型の値の比較 / ネスト構造 if文の中にif文
  nullを比較 / boolean型の値の判定 / 三項演算子
  比較演算子
論理演算子 論理積(&&) AかつB / 論理和(||) AまたはB / 否定(!) Aではない
  排他的論理和(^)

if文とは

if (条件式){
    処理
}
// else ifとelseを書く場合
if (条件式){
    処理
} else if (条件式) {
    処理
} else {
  処理
}
  • 条件が合致する場合、配下のブロック{ }の処理が実行され、if文の処理は終了します。
  • 条件が合致することをtrue(真)ともいいます。
  • 条件が合致しない場合、配下のブロック{ }の処理は実行されず、その下(else if/else)に進みます。
  • 条件が合致しないことをfalse(偽)ともいいます。
  • else ifは、1つ以上記述できます。省略可能です。
  • elseは、1つのみ記述できます。省略可能です。elseのブロック{ }の処理は、どの条件も合致しなかったときに実行されます。
  • String型の値を比較するときは、比較演算子の==ではなくequalsメソッドを使用します。
    Java 文字列の値を比較する(equals/compareTo)

if文のサンプル

  int a = 1;
		
  if (a == 0) {
    System.out.println("0");

  } else if (a == 1) {
    System.out.println("1"); //1が表示される

  } else {
    System.out.println("other");
  }

1行目は、変数aに値をセットしています。
3行目から11行目までがif文です。
6行目は、条件が合致する(aの値は1である)のでその配下の処理が実行されます。
7行目の処理が実行されif文を抜けます(終了します)。

String型の値の比較

  String b = "test";
  String c = "test";
		
  if (b.equals(c)) {
    System.out.println("true"); //trueが表示される
  }

String型の値を比較するときは、比較演算子の==ではなくequalsメソッドを使用します。
==は値ではなく参照先が同じかを確認するため。

ネスト構造 if文の中にif文

  int a = 1;
  int b = 1;

  if (a == 1) {
    if (b == 1) {
      System.out.println("1");//1が表示される
    }
  } 

if文の中にif文を記述しています。ネストの構造です。入れ子ともいいます。
4,5行目は、trueになり文字列が表示されます。

nullを比較

  String a = null;
  //String a = ""; //空文字

  if (a == null) {
    System.out.println("true"); //trueが表示される
  }
		
  if (a == null || a.isEmpty()) {
    System.out.println("true"); //trueが表示される
  }

nullは、比較演算子の==で比較できます。
8行目は、値がnullまたは空文字のときにtrueになります。論理和(||)の短絡評価を使用した書き方で、左の式(a==null)がtrueであれば右の式(a.isEmpty())は判定されません。

Java equalsでnullまたは空文字を比較するサンプル
Java isEmpty 空文字を確認する(StringUtils)

boolean型の値の判定

  boolean a = true;
  if (a) {
    System.out.println("true"); //trueが表示される
  }
		
  boolean b = false;
  if (b) {
    System.out.println("true");
  }else {
    System.out.println("false");//falseが表示される
  }

boolean型の値の判定をするとき、比較演算子はなくても判定できます。

三項演算子

条件式  ?  値1 : 値2
  • 条件式がtrueのとき、値1が返されます。
  • 条件式がfalseのとき、値2が返されます。
  int a = 1;
    
  // 三項演算子
  String b = a==0 ? "true" : "false";
  System.out.println(b); //falseが表示される

  if (a == 0) {
    System.out.println("true");
   } else {
    System.out.println("false"); // falseが表示される
  }

4行目は、三項演算子です。
4,5行目をif文で書くと、7~11行目のようになります。

比較演算子

比較演算子は、2つの値を比べて条件を満たしていればtrue,そうでない場合はfalseを返します。

比較演算子 説明
a == b aとbの値は等しい
a != b aとbの値は等しくない
a > b aはbより大きい
a >= b aはbより大きい または 等しい
a < b aはbより小さい
a <= b aはbより小さい または 等しい

Javaにイコール3つ(===)の演算子はありません

論理積(&&)  AかつB

if (左の条件式) && (右の条件式)
  • 左の式と右の式が両方ともtrueの場合、trueになります。それ以外はfalseです。
  • 左の式がfalseの場合、右の式は判定(評価)されません。これを短絡評価(ショートサーキット評価 : Short-Circuit Evaluation)といいます。
  • Javaに「and」の論理演算子はありません。
  int a = 2;
  int b = 2;

  if ((a == 2) && (b == 2)) {
    System.out.println("true"); //trueが表示される
  } else {
    System.out.println("false");
  }

4行目は、左の式と右の式が共にtrueなので、trueになります。

論理和(||)  AまたはB

if (左の条件式) || (右の条件式)
  • 左の式または右の式のどちらかがtrueの場合、trueになります。
  • 左の式がtrueの場合、右の式は判定(評価)されません。これを短絡評価(ショートサーキット評価 : Short-Circuit Evaluation)といいます。
  • Javaに「or」の論理演算子はありません。
  int a = 1;
  int b = 2;

  if ((a == 2) || (b == 2)) {
    System.out.println("true"); // trueが表示される
  } else {
    System.out.println("false");
  }

4行目は、左の式はfalseですが右の式がtrueなのでtrueになります。

否定(!)  Aではない

if  !(条件式) 
  • 条件式がfalseの場合にtrueになります。
  • 条件式がtrueの場合にfalseになります。
  int a = 1;

  if (!(a == 2)) { 
    System.out.println("true");//trueが表示される
  }
		
  if (!(a == 1)) {
    System.out.println("true");
  }else {
    System.out.println("false");//falseが表示される
  }

3行目は値の比較でfalseになり、それを否定するのでtrueになります。
7行目は値の比較でtrueになり、それを否定するのでfalseになります。

排他的論理和(^)

if (左の条件式) ^ (右の条件式)
  • 左の式がtrueで右の式がfalseの場合、trueになります。
  • 左の式がfalseで右の式がtrueの場合、trueになります。
  • 左の式と右の式が両方ともtrueの場合、falseになります。
  • 左の式と右の式が両方ともfalseの場合、falseになります。
  int a = 2;
  int b = 2;

  if ((a == 2) ^ (b == 3)) {
    System.out.println("true"); // trueが表示される
  } else {
    System.out.println("false");
  }
		
  if ((a == 3) ^ (b == 2)) {
    System.out.println("true"); // trueが表示される
  } else {
    System.out.println("false");
  }
		
  if ((a == 2) ^ (b == 2)) {
    System.out.println("true");
  } else {
    System.out.println("false"); //falseが表示される
  }
		
  if ((a == 3) ^ (b == 3)) {
    System.out.println("true");
  } else {
    System.out.println("false"); //falseが表示される
  }

4行目は、左の式がtrueで右の式がfalseなので、trueになります。
10行目は、左の式がfalseで右の式がtrueなので、trueになります。
16行目は、左の式と右の式が両方ともtrueなので、falseになります。
22行目は、左の式と右の式が両方ともfalseなので、falseになります。

関連の記事

Java switch文 条件分岐を行う
Java while文とdo…while文 処理を繰り返す
Java 拡張for文 配列やコレクションをループで取得
Java for文 処理を繰り返す(break/continue)
Java equalsでnullまたは空文字を比較するサンプル

△上に戻る