true(참), false(거짓)으로 반환 됨, 비교연산자 라고도 함
package ch12; public class RealtionalTest { public static void main(String[] args) { int num1 = 5; int num2 = 3; boolean value = (num1 > num2); System.out.println(value); System.out.println(num1 < num2); System.out.println(num1 >= num2); System.out.println(num1 <= num2); System.out.println(num1 == num2); System.out.println(num1 != num2); } }실행 결과
true(참), false(거짓)으로 반환 됨
package ch12; public class LogicalTest { public static void main(String[] args) { int num1 = 10; int num2 = 20; boolean flag = (num1 > 0) && (num2 > 0); System.out.println(flag); flag = (num1 < 0) && (num2 > 0); System.out.println(flag); flag = (num1 > 0) || (num2 > 0); System.out.println(flag); flag = (num1 < 0) || (num2 > 0); System.out.println(flag); flag = !(num1 > 0); System.out.println(flag); } }실행 결과
논리 곱(&&)은 두 항의 결과가 모두 true일 때만 결과가 true (AND 연산)
-- 앞의 항의 결과가 false이면 뒤 항의 결과를 평가하지 않음
논리 합(||)은 두 항의 결과가 모두 false일 때만 결과가 false (OR 연산)
-- 앞의 항의 결과가 true이면 뒤 항의 결과를 평가하지 않음
package ch12; public class ShortCircuit { public static void main(String[] args) { int num1 = 10; int i = 2; // 앞의 항의 결과가 `false`이므로 뒤 항의 결과는 평가하지 않음 (&&) boolean value = ((num1 = num1 + 10 ) < 10) && ( ( i = i + 2 ) < 10); System.out.println(value); System.out.println(num1); System.out.println(i); // 앞의 항의 결과가 true이면 뒤 항의 결과를 평가하지 않음 (||) // 여기선 앞의 항의 결과가 false이므로 뒤 항의 결과를 평가함 value = ((num1 = num1 + 10 ) < 10) || ( ( i = i + 2 ) < 10); System.out.println(value); System.out.println(num1); System.out.println(i); } }실행 결과