본문 바로가기
💻 개발/Java

[선택 과정] Java 기초 - 자바의 연산자들 (2) : 관계, 논리 연산자

by 컴쏘 2023. 6. 24.

관계 연산자

  • 이항 연산자
  • 연산의 결과가 true(참), false(거짓)으로 반환 됨, 비교연산자 라고도 함
  • 조건문, 반복문의 조건식으로 많이 사용 됨
package ch12;

public class RelationTest {
	public static void main(String[] args) {
		int num1 = 5;
		int num2 = 3;
		
		boolean value = (num1 > num2);
		System.out.println(value);        //true
		
		System.out.println(num1 < num2);  //false
		System.out.println(num1 >= num2); //true
		System.out.println(num1 <= num2); //false
		System.out.println(num1 == num2); //false
		System.out.println(num1 != num2); //true
	}
}

논리 연산자

  • 관계 연산자와 혼합하여 많이 사용 됨
  • 연산의 결과가 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);           //true
		
		flag = (num1 < 0) && (num2 > 0);
		System.out.println(flag);           //false

		flag = (num1 > 0) || (num2 > 0);
		System.out.println(flag);           //true
		
		flag = (num1 < 0) || (num2 > 0);
		System.out.println(flag);           //true
		
		flag = !(num1 > 0);
		System.out.println(flag);           //false
	}
}

논리 연산에서 모든 항이 실행되지 않는 경우 - 단락 회로 평가 (short circuit evaluation)

  • 논리 곱(&&)은 두 항의 결과가 모두 true일 때만 결과 true
    • 앞의 항의 결과가 false이면 뒤 항의 결과를 평가하지 않음
  • 논리 합(||)은 두 항의 결과가 모두 false일 때만 결과가 false
    • 앞의 항의 결과가 true이면 뒤 항의 결과를 평가하지 않음
package ch12;

public class ShortCircuit {
	public static void main(String[] args) {
		int num1 = 10;
		int i = 2;
		
		boolean value = ((num1 = num1 + 10) < 10) && ((i = i + 2) < 10);
		System.out.println(value); // false
		System.out.println(num1);  // 20
		System.out.println(i);     // 2
		
		value = ((num1 = num1 + 10) < 10) || ((i = i + 2) < 10);
		System.out.println(value); // true
		System.out.println(num1);  // 30
		System.out.println(i);     // 4
	}
}

2023 KAKAO Tech Campus_BackEnd 선택 과정
Java 기초 강의 정리 내용입니다.