Contents
Java - 타입 마다 사용 가능한 연산자 알아보기
   Sep 23, 2022     3 min read

타입 마다 사용 가능한 연산자 알아보기

정수형에서 사용할 수 있는 연산자

구분 연산자
결과가 boolean인 경우숫자 비교 연산자<, ≤, >, ≥
 숫자 동등 연산자==, ≠
결과가 int나 long인 경우기본 사직 연산자+, -, *, /, %
 증감 연산자++, —
 비트 연산자&, |, ^, ~, «, », »>
기타 연산자삼항 연산자? :
 형 변환 연산자(타입)
 문자열 더하기 연산자+

소수형 타입에서 사용할 수 있는 연산자

구분 연산자
결과가 boolean인 경우숫자 비교 연산자<, ≤, >, ≥
 숫자 동등 연산자==, ≠
결과가 int나 long인 경우기본 사직 연산자+, -, *, /, %
 증감 연산자++, - -
기타 연산자삼항 연산자? :
 형 변환 연산자(타입)
 문자열 더하기 연산자+
  • double, float는 소수형이기 때문에 비트 연산이 불가능하다

boolean 타입에 대한 연산자

구분연산자
동등 연산자==, ≠
조건적 논리 연산자&&, ||
논리 연산자!, &, |, ^
삼항 연산자? :
문자열 더하기 연산자+
  • &, |, ^ 이 연산자들은 숫자에 사용하면 비트 연산을 수행한다
  • 그런데 boolean 타입 사이에 사용하면 논리 연산을 수행한다.
연산자내용
&두 값이 모두 true일 경우에만 true
|두 값이 모두 false일 경우에만 false
^두 값이 서로 다를 경우에는 true, 모두 true이거나, false이면 false

&&와 & , || 와 는 같은 것인가 ?

실제 연산하는 방식은 아주 큰 차이가 있다. &&의 경우 좌측에 있는 연산이 false이면 우측에 있는 연산을 수행하지 않는다.

이유는 &&연산 은 두 개의 결과가 모두 true여야지만 결과가 true가 되므로 앞에 있는 결과가 false일 경우 뒤에 있는 연산을 수행할 필요가 없다.

하지만…

& 연산의 경우 좌측 연산 결과와 우측 결과를 비교해야만 하기 때문에 모든 연산을 수행한다.

따라서 …

보통 &&와 || 사용하는 것이 좋다.

  • && 연산
int a = 1;
System.out.println( (a == 5) && (b == 3) )

위 처럼 && 연산으로 사용할 경우 a는 5가 아니므로 false가 나온다. 그럼 우측에 (b == 3)연산은 수행하지도 않는다.

반면에…

  • & 연산
int a = 1;
int b = 3;
System.out.println( (a == 5) & (b == 3) )

& 연산 일 경우 앞의 연산(a == 5)의 결과(false)와 뒤의 연산(b ==3)의 결과(true)가 같은지 확인한다. 즉, 두 개 다 연산하고 비교를 한다.

참고 - God of Java (서적)