관리 메뉴

나구리의 개발공부기록

자바의 정석 기초편 ch3 - 15 ~ 19[논리연산자,논리부정연산자,조건연산자,대입연산자] 본문

유튜브 공부/JAVA의 정석 기초편(유튜브)

자바의 정석 기초편 ch3 - 15 ~ 19[논리연산자,논리부정연산자,조건연산자,대입연산자]

소소한나구리 2023. 11. 5. 17:34

1) 논리 연산자

  • 두 조건식을 연결할 때 사용하는 연산자
  • || (or) - 피연산자 중 어느 한쪽이 true이면 true를 결과로 얻는다
  • && (and) - 피연산자 양쪽 모두 true여야만 true를 결과로 얻는다
  • && 와 || 가 동시에 있을 경우 &&가 먼저 연산 됨

  1. x는 10보다 크고, 20보다 작다
    • x > 10 && x < 20, 가독성을 위하여 아래처럼 변경하는 것이 좋음
    • 10 < x && x < 20
  2. i는 2의 배수 또는 3의 배수이다.
    • i%2==0 || i%3==0
  3. i는 2의 배수 또는 3의 배수지만, 6의 배수는 아니다
    • (i%2==0 || i%3==0) && i%6!=0
    • and와 or가 함께 사용하는 식의 경우 and가 먼저 계산 되므로 주의
  4. 문자 ch는 숫자를 나타내는 문자'0'~'9' 사이의 값이다
    • ch가 '0'과 '9' 사이에 오도록 코드를 작성 -> 유니코드 문자가 '0' ~ '9' 까지 연속적으로 배치 되어있기 때문에 가능한 식
    • '0' <= ch && ch <= '9'
    • ch = '5'  -> true
    • ch = '11' -> false
  5. 문자 ch는 대문자 또는 소문자이다
    • ('a' <= ch && ch <= 'z') || ('A' <= ch && ch <= 'Z')

2) 논리 부정 연산자 

  • ! (not),  true를 false로 false를 true로 바꿈
  • boolean b = true;
    • !!b -> !!true -> !false -> true
    • 단항 연산자이므로 계산 순서가 오른쪽에서 왼쪽으로 진행
  • 문자 ch가 소문자가 아니다
    • ch < 'a' || ch > 'z' -> !('a' <= ch && ch <= 'z')
    • 논리 부정 연산자를 활용하여 가독성을 좋게 조건식을 작성하는 것을 권장

3) 조건연산자 (3항연산자)

  • ?,  :
  • 조건식의 결과에 따라 연산 결과를 달리한다
  • 조건식 ? 식1(참) : 식2(거짓) 
    • int x = 5 , y = 3 ;
    • result = (x > y) ? x : y;
      • result = (5 > 3) ? 5 : 3;
      • result = (true) ? 5 : 3;
      • result = 5;

아래의 그림처럼 if문을 간단히 쓸때 3항연산자를 사용 -> 간단한 if문은 3항연산자를 활용 하는 것이 좋다.

 


4) 대입연산자

  • =
  • 오른쪽 피연산자를 왼쪽 피연산자에 저장 후 저장된 값을 반환(모든 연산자는 결과값을 반환)
    • System.out.println(x = 3);  -> 변수 x에 3이 저장되고 연산결과인 3이 출력됨
    • x = y = 3 -> y에 3이 대입되고 x에 y가 대입되어 x에 최종적으로 3이 대입됨
  • (lvalue: 대입연산자의 왼쪽 피연산자) x = 3 (rvalue: 대입연산자의 오른쪽 피연산자)
  • lvalue는 반드시 저장공간 이여야 함(변수,배열)
    • int i = 0; -> OK
    • 3 = i +3;  -> 에러 : lvalue가 저장할 수 있는 공간(변수, 배열)이 아닌 리터럴임
    • i + 3 = i;  -> 에러 : lvalue가 표현식임
  • final int MAX = 3;  -> final은 상수
  • MAX = 10;  -> 에러 : 상수는 새로운 값을 저장할 수 없음

5) 복합대입연산자

  • 대입 연산자와 다른 연산자를 하나로 축약
  • 맨 마지막의 경우 괄호 주의

 

 

 

** 출처 : 남궁성의 정석코딩_자바의정석_기초편 유튜브 강의