study:java:javachobo:ch3
문서의 이전 판입니다!
목차
연산자
연산자(Operator)란?
| 연산자(Operator) | 어떠한 기능을 수행하는 기호(+,-,*,/ 등) |
|---|---|
| 피연산자(Operand) | 연산자의 작업 대상(변수,상수,리터럴,수식) |
- 어떠한 기능을 수행하는 기호를 말합니다.
- 예를 들면 +는 덧셈’이라는 기능을 수행하는 기호죠.
- 피연산자는 연산자의 작업대상을 말합니다.
- 예를 들어 a + b라는 식이 있다고 할 때,
<color blue>+는 연산자</color>이고, 연산자가 덧셈을 수행할 대상인 <color red>a와 b는 피연산자</color>입니다.
연산자의 종류
| 단항연산자 | : + - (타입) ++ – ~ ! |
|---|---|
| 이항연산자 | 산술 : + - * / % << >> >>> 비교 : > < > = <= == != 논리 : && || & ^ |
| 삼항연산자 | ? : |
| 대입연산자 | = |
연산자 우선순위
- 괄호의 우선순위가 제일 높다.
- 산술 > 비교 > 논리 > 대입
- 단항 > 이항 > 삼항
- 연산자의 연산진행방향은 왼쪽에서 오른쪽이다.( → )
예외적으로 단항,대입연산자만 오른쪽에서 왼쪽( ← ) 이다.
- 연산자의 우선순위를 정리한 표입니다.
- 우선순위가 높은 것 부터 낮은 것의 순으로 되어 있습니다.
같은 줄의 연산자들은 우선순위가 같습니다. - 우선순위가 높은 것 부터 낮은 것 순으로 나열하면
- 단항, 이항, 삼항, 대입 연산자의 순입니다.
- 이항 연산자 중에는 산술, 비교, 논리 연산자의 순입니다.
- 우선순위 뿐만아니라 연산방향에 대해서도 알아두셔야 합니다.
- 연산방향은 같은 우선순위의 연산이 있을때 연산을 수행하는 방향을 말합니다.
- 단항과 대입연산자를 제외하고는 연산진행방향이 오른쪽에서 왼쪽입니다
예제
| 단항 > 이항 | -x + 3 |
|---|---|
| 곱셈,나눗셈 > 덧셈, 뺄셈 | x + 3*y |
| 산술 > 비교 | x+3 > y-2 |
| 비교 > 논리 | x>3 && x<5 |
| 대입은 항상 맨 끝에 | int i = x + y*3 |
주의사항
- <
<, >>, >>>는 덧셈연산자보다 우선순위가 낮다.
<color blue>x << 2 + 1</color> : <color red>x << (2 + 1)</color> 과 같다. - ||, |(OR)는 &&, &(AND)보다 우선순위가 낮다.
<color blue>x < -1 || x > 3 && x < 5</color> : <color red>x < -1 || (x > 3 && x < 5)</color> 와 같다.
증감연산자(++,--)
| 증가연산자(++) | 피연산자의 값을 1 증가시킨다. |
|---|---|
| 감소연산자(–) | 피연산자의 값을 1 감소시킨다. |
- int i = 5 , j = 0 ;
| 전위형 | j = ++i; | ++i; j = i; | 값이 참조되기 전에 증가시킨다 | j=6 i=6 |
|---|---|---|---|---|
| 후위형 | j = i++; | j = i; ++i; | 값이 참조된 후에 증가시킨다 | j=5 i=6 |
부호연산자(+,-)와 논리부정연산자
| 부호연산자(+,-) | ‘+’는 피연산자에 1을 곱하고 ‘-’는 피연산자에 -1을 곱한다 |
|---|---|
| 논리부정연산자(!) | true는 false로, false는 true로 피연산자가 boolean일 때만 사용가능 |
비트전환연산자(~)
이항연산자의 특징
<color blue> 이항연산자는 연산을 수행하기 전에 피연산자의 타입을 일치시킨다. </color>
- int보다 크기가 작은 타입은 int로 변환한다.
- byte, char, short → int
- 피연산자 중 표현범위가 큰 타입으로 형변환 한다.
- byte + short → int + int → int
- char + int → int + int → int
- float + int → float + float → float
- long + float → float + float → float
- float + double → double + double → double
나머지 연산자(%)
- 나누기한 나머지를 반환한다.
- 홀수, 짝수 등 배수검사에 주로 사용.
- int remain = 10 % 8 ;
remain 에 나머지 2값이 들어간다. - 나머지 연산자 예제
10 % 8 → 2 10 % -8 → 2 -10 % 8 → -2 -10 % -8 → -2
쉬프트 연산자(<<,>>,>>>)
- 2n으로 곱하거나 나눈 결과를 반환한다.
- 곱셈, 나눗셈보다 빠르다.
- x <
< n 은 x * 2n과 같다.8 << 2 는 8 * 22과 같다.
- x >
> n 은 x / 2n과 같다.8 >> 2 는 8 / 22과 같다.
비교연산자(>,<,>=,<=,==,!=)
- 피연산자를 같은 타입으로 변환한 후에 비교한다.
결과 값은 true 또는 false이다.
예제
- ‘A’ < ‘B’ → 65 < 66 → true
- ‘0’ == 0 → 48 == 0 → false
- ‘A’ != 65 → 65 != 65 → false
비트연산자(&,|,^)
- 피연산자를 비트단위로 연산
- 실수형(float, double)을 제외한 모든 기본형에 사용가능
| OR연산자 | | | 피연산자 중 어느 한 쪽이 1이면 1이다. |
|---|---|---|
| AND연산자 | & | 피연산자 양 쪽 모두 1이면 1이다. |
| XOR연산자 | ^ | 피연산자가 서로 다를 때 1이다. |
| x | y | x | y | x & y | x ^ y |
|---|---|---|---|---|
| 1 | 1 | 1 | 1 | 0 |
| 1 | 0 | 1 | 0 | 1 |
| 0 | 1 | 1 | 0 | 1 |
| 0 | 0 | 0 | 0 | 0 |
논리연산자(&&,||)
- 피연산자가 반드시 boolean이어야 하며 연산결과도 boolean이다.
- &&가 || 보다 우선순위가 높다.
같이 사용되는 경우 괄호를 사용한다.
| OR연산자 | || | 피연산자 중 어느 한 쪽이 true이면 true이다. |
|---|---|---|
| AND연산자 | && | 피연산자 양 쪽 모두 true이면 true이다. |
| x | y | x || y | x && y |
|---|---|---|---|
| true | true | true | true |
| true | false | true | false |
| false | true | true | false |
| false | false | false | false |
삼항연산자(? :)
(조건식) ? 식1 : 식2
- 조건식의 연산결과가
<color blue>true이면 ‘식1’의 결과</color>를 반환하고
<color red>false이면 ‘식2’의 결과</color>를 반환한다. - 예제
int x = -10; int absX = x >= 0 ? x : -x;
아래의 조건문과 동일하다.
if(x>=0) { absX = x; } else { abxX = -x; }
대입연산자(=,op=)
study/java/javachobo/ch3.1264866259.txt.gz · 마지막으로 수정됨: 저자 starlits





