Java if文のサンプル

Javaのif文のサンプルです。

目次

if文

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

コード

if文のサンプルです。
10行目のelse ifの条件式がtrueになります。
19行目は、String型の値の比較です。equalsメソッドを使用します。

package test1;

public class Test1 {
	public static void main(String[] args) {
		
		int a = 1;
		if (a == 0) {
			System.out.println("p1");

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

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

ネストの構造

9行目のように、if文の中にif文を記述することができます。ネストの構造です。入れ子ともいいます。

package test1;

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

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

8,9行目は、trueになり文字列が表示されます。

 

比較演算子

上記コードの==は比較演算子です。

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

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

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

 

論理演算子の論理積(&&)

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

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

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

8行目は、trueになります。

 

論理演算子の論理和(||)

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

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

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

8行目は、trueになります。

 

論理演算子の否定(!)

if  !(条件式) 
  • 式がfalseの場合にtrueになります。
  • 式がtrueの場合にfalseになります。
package test1;

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

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

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

8行目はif文でfalseになり、それを!で否定するのでtrueになります。
13行目はif文でtrueになり、それを!で否定するのでfalseになります。

 

論理演算子の排他的論理和(^)

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

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

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

8,14行目は、trueになります。
20,26行目は、falseになります。

 

nullとの比較

nullは、比較演算子の==で比較できます。

package test1;

public class Test1 {
	public static void main(String[] args) {
		
		String a = null;
		//String a = ""; //空文字

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

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

 

boolean型の値の判定

if (値)
  • boolean型の値の判定をするとき、比較演算子は不要です。
  • 値がtrueのとき、trueが返されます。
  • 値がfalseのとき、falseが返されます。
package test1;

public class Test1 {
	public static void main(String[] args) {

		boolean a = true;
		if (a) {
			System.out.println("p1"); //p1
		}
		
		boolean b = false;
		if (b) {
			System.out.println("p1");
		}else {
			System.out.println("p2");//p2
		}
	}
}

7行目は、trueになります。
12行目は、falseになります。

 

三項演算子

条件式  ?  値1 :  値2
  • 条件式がtrueのとき、値1が返されます。
  • 条件式がfalseのとき、値2が返されます。
package test1;

public class Test1 {
    public static void main(String[] args) {
        int a = 1;
    
        // 三項演算子
        String b = a==0 ? "p1" : "p2";
        System.out.println(b); //p2

        if (a == 0) {
            System.out.println("p1");
        } else {
            System.out.println("p2"); // p2
        }
    }
}

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

関連の記事

Java switch文のサンプル
Java while文とdo...while文のサンプル
Java 拡張for文のサンプル
Java for文とbreakとcontinueのサンプル
Java equalsで値がnullまたは空文字だった場合のサンプル

△上に戻る