Java - 타입 마다 사용 가능한 연산자 알아보기
타입 마다 사용 가능한 연산자 알아보기
정수형에서 사용할 수 있는 연산자
구분 | 연산자 | |
---|---|---|
결과가 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)가 같은지 확인한다. 즉, 두 개 다 연산하고 비교를 한다.