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

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

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

if文とは

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

if文のサンプル

public class Test1 {
	public static void main(String[] args) {
		int a = 1;

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

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

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

5行目から13行目までがif文です。
8行目は、条件が合致する(aの値は1である)のでその配下の処理が実行されます。
9行目の処理が実行されif文を抜けます(終了します)。

String型の値の比較

	  String str1 = "test1";
	  String str2 = "test1";
	  // 文字列の比較
	  if (str1.equals(str2)) {
	    System.out.println("true"); //trueが表示される
	  }
	  
	  String str3 = "test3";
	  String str4 = "test4";
	  // 文字列の比較 (否定)
	  if (!(str3.equals(str4))) {
	    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行目のようになります。

論理積(&&)  if文でandを使用 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になります。

論理和(||)  if文でorを使用 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 equalsでnullまたは空文字を比較するサンプル

△上に戻る