[JAVA] 연산자의 이해

Coastby·2022년 9월 21일
0

LIKELION Back-End School

목록 보기
4/61

연산자

○ 연산자 우선순위

  • 결합 방향 : 우선 순위가 같을 경우에 연산을 진행하는 방향
  • ⭐️ 실제로 우선순위가 가장 높은 것은 괄호 : 실무에서 많이 쓰임

○ 산술연산자

문자열의 연산

  • 문자열과 숫자 (정수나 실수)가 있으면, 문자열로 결합한다.
//문자열 + 정수 : 정수가 문자열로 캐스팅된다.
String s1 = "안녕" + 1;

//앞에서부터 연산
String s2 = "1" + 1 + 1;  //111
String s3 = 1 + 1 + "1";  //21

○ 대입연산자

○ 전위 연산자/후위 연산자

int x = 1;
int y = 1;

int a = x++;
int b = ++y;

System.out.println("a=" +a+ ", b=" + b);

//result
a=1, b=2
  • 전위 연산자 (prefix operator) : 먼저 증가시키고 그 결과를 객체로 반환한다.
    • 위의 예에서 ++y는 1이 증가된 y를 반환했을 것이다.
    int num = 10;
     ++num = 30;		//num = 30과 동일
  • 후위 연산자 (postfix operator) : 전위 연산자와는 다르게 추가적인 메모리가 필요하다.
    • 후위 연산자가 들어있는 연산을 진행한다, 이때 후위 연산자는 상수값 (원래 변수에 들어있던 값)을 반환하고 임시 메모리에 객체에 1을 더한 값을 저장해놓는다.
    • 해당 변수의 값을 변화시킨다.
    • 위의 예에서 x++은 상수값 1을 반환했을 것이다.
    int num = 10;
     num++ = 30;		//Error!
  • 결론적으로 둘 다 사용가능할 때는 후위연산자는 메모리를 더 사용하므로, 전위연산자를 쓰는 것이 유리하다.

참고 : https://m42-orion.tistory.com/68

○ 관계 연산자

○ 논리 연산자

○ 삼항 연산자

//세 수를 비교해서 최대값 구하기
int a = 10;
int b = 40;
int c = 30;

int max = (a > b) ? a : b;
max = (max > c) ? max : c;
		
System.out.println(max);
profile
훈이야 화이팅

0개의 댓글