JAVA/Do it! 자바 프로그래밍 입문

[Do it 자바 프로그래밍 입문] 03 자바의 여러 가지 연산자

yun.data 2023. 3. 23. 16:12

 

1. 기본 연산자

1-1. 항과 연산자

  • 연산자(operator): 연산에 사용하는 기호
  • 항(operand): 연산에 사용하는 값
  • 연산자의 종류
    • 단항 연산자: 항이 한 개인 연산자
    • 이항 연산자: 항이 두 개인 연산자
    • 삼항 연산자: 항이 세 개인 연산자
    • 항의 크기가 작을수록 연산자 우선순위가 높음

 

 

1-2. 대입 연산자

  • 대입 연산자(assignmner operator): 변수에 값을 대입하는 변산자
  • 이항 연산자 중 우선순위가 가장 낮은 연산자

 

 

1-3. 부호 연산자

  • 양수(+)
  • 음수(-)

 

 

1-4. 산술 연산자

  • 덧셈(+): 두 항을 더함
  • 뺄셈(-): 앞에 있는 항에서 뒤에 있는 항을 뺌
  • 곱셈(*): 두 항을 곱함
  • 나눗셈(/): 앞에 있는 항에서 뒤에 있는 항을 나누어 몫을 구함
  • 나머지(%): 앞에 있는 항에서 뒤에 있는 항을 나누어 나머지를 구함
  • 산술 연산자의 우산순위는 일반 수학의 산술 연산과 같음

 

 

1-5. 증가 감소 연산자

  • 증가(++): 항의 값에 1을 더함
  • 감소(--): 항의 값에서 1을 뺌
  • 피연산자 앞에 있으면 문장이 끝나기 전에 값 변환
  • ex) value가 10일 때 num=++value;에서 num의 값은 10이지만 num = value++; 인 경우 num의 값은 10이다.

 

 

1-6. 관계 연산자

  • >: 왼쪽 항이 클 경우 true, 아니면 false
  • <: 왼쪽 항이 작을 경우 ture, 아니면 false
  • >=: 왼쪽 항이 오른쪽 항보다 크거나 같으면 true, 아니면 false
  • <=: 왼쪽 항이 오른쪽 항보다 작거나 같으면 true, 아니면 false
  • ==: 두 개 항의 값이 같으면 true, 아니면 false
  • !=: 두 개 항이 다르면 true, 아니면 false

 

 

1-7. 논리 연산자

  • 논리 곱(&&): 두 항이 모든 true인 경우면 true
  • 논리 합(||): 두 항 중 하나만 참이여도 true
  • 부정(!): 단항 연산자, true를 false로 false를 true로 반환
  • 단락 회로 평가(Short Circuit Evalumation; SCE): 논리 곱 연, 논리 합 연산 시 두 항을 모두 실행하지 않더라도 결과 값을 알 수 있는 경우에 실행 필요가 없는 나머지 항이 실행되지 않는 것

 

 

1-8. 복합 대입 연산자

  • 우선순위가 가장 낮음
  • +=: 두 항의 값을 더해서 왼쪽 항에 대입
  • -=: 왼쪽 항에서 오른쪽 항의 값을 빼서 왼쪽 항에 대입
  • *=: 두 항의 값을 곱해서 왼쪽 항에 대입
  • /=: 왼쪽 항을 오른쪽 항으로 나누어 그 몫을 왼쪽 항에 대입
  • %=: 왼쪽 항을 오른쪽 항으로 나누어 그 나머지를 왼쪽 항에 대입
  • <<=: 비트를 왼쪽으로 쉬프트(이동)한 값을 왼쪽 항에 대입
  • >>=: 비트를 오른쪽으로 쉬프트(이동)한 값을 왼쪽 항에 대입(왼쪽에 채워지는 비트의 값: 부호 비트와 동일)
  • >>>=: 비트를 오른쪽으로 쉬프트(이동)한 값을 왼쪽 항에 대입(왼쪽에 채워지는 비트의 값: 0)
  • &=: 두 항의 & 비트 연산 값을 왼쪽 항에 대입
  • |= 두 항의 | 비트 연산 값을 왼쪽 항에 대입
  • ^=: 두 항의 ^ 비트 연산 값을 왼쪽 항에 대입

 

 

1-9. 조건 연산자

  • 삼항 연산자
  • 연산자: 조건식? 결과1 : 결과2;
  • 기능: 조건식이 ture이면 결과1, false이면 결과2 선택

 

 


2. 비트 연산자

2-1. 비트 논리 연산자

  • &(AND) 연산자: 두 개의 비트 값이 모두 1인 경우에만 1
  • |(OR) 연산자:비트 값이 하나라도 1이면 1
  • ^(XOR): 같은 값이면 0, 다른 값이면 1
  • ~(반전): 0은 1로, 1은 0으로 바꿈

 

 

2-2. 비트 이동 연산자

  • 시프트(shift) 연산자라고도 함
  • << 연산자: 왼쪽으로 비트를 이동
  • >> 연산자: 오른쪽으로 비트를 이동, 채워지는 비트 값: 기존 부호 비트
  • >>> 연산자: 오른쪽으로 비트를 이동, 채워지는 비트 값: 0

 

 

2-3. 연산자 우선순위

  • 단항 연산자, 이항, 삼항 연산자 순서
  • 대입 연산자의 우선순위가 가장 낮음
  • 산술, 관계, 논리, 대입 연산자 순서이며 ()의 우선순위가 가장 높음