연산자의 종류와 우선 순위
연산자 (Operator) : 변수나 상수에 미리 약속된 연산을 하는 명령어
연산 기능에 따른 분류
이름 | 연산자 |
부호 연산자 | + - |
산술 연산자 | + - * / % |
증감 연산자 | ++ -- |
대입 연산자 | = += -= *= /= %= &= |= ^= >>= >>>= <<= |
관계 연산자 | < <= > >= == != |
논리 연산자 | && || ! |
비트 연산자 | & | ~ ^ >> >>> << |
조건 연산자 | ?: |
캐스트 연산자 | (type) |
피연산자의 개수에 따른 분류
이름 | 연산자 |
단항 연산자 | +(부호) -(부호) ++ -- ! ~ (type) |
이항 연산자 | + - * / % = += -= *= /= %= &= |= ^= >>= >>>= <<= |
삼항 연산자 | ?: |
연산자 우선 순위
종류 | 연산자 | 결합 방향 | 우선 순위 |
일차식 | ( ) [ ] | → | 높다 |
단항 연산자 | ! ~ ++ -- -(부호) +(부호) (type) | ← | |
이항 연산자 | * / % + - >> >>> << < <= > >= == != & ^ | && || |
→ | |
삼항 연산자 | ?: | ← | |
대입 연산자 | = += -= *= /= %= >>= >>>= <<= &= ^= != | ← | 낮다 |
단항 산술 연산자와 예시
연산자 | 사용법 | 의미 |
+ | +A | 양수 부호 |
- | -A | 음수 부호 |
++ | ++A | 값을 하나 증가시킵니다. (전위 증가) |
++ | A++ | 값을 하나 증가시킵니다. (후위 증가) |
-- | --A | 값을 하나 감소시킵니다. (전위 감소) |
-- | A-- | 값을 하나 감소시킵니다. (후위 감소) |
public calss Arithmetic {
public static void main(String[] args) {
int a, b;
a = 10;
b = ++a; // 먼저 1을 증가시키는 전위 연산을 수행합니다.
System.out.println("++a : " + a + ", b : " + b);
a = 10;
b = a++; // 나중에 1을 증가시키는 후위 연산을 수행합니다.
System.out.println("a++ : " + a + ", b : " + b);
a = 10;
b = --a; // 먼저 1을 감소시키는 전위 연산을 수행합니다.
System.out.println("--a : " + a + ", b : " + b);
a = 10;
b = a--; // 나중에 1을 감소시키는 후위 연산을 수행합니다.
System.out.println("a-- : " + a + ", b : " + b);
}
}
// 실행 결과
// ++a : 11, b : 11
// a++ : 11, b : 10
// --a : 9 , b : 9
// a-- : 9 , b : 10
이항 산술 연산자
연산자 | 사용법 | 의미 |
+ | A + B | 더하기 |
- | A - B | 빼기 |
* | A * B | 곱하기 |
/ | A / B | 나누기 |
% | A % B | 나머지 |
public class Arithmetic {
public static void main(String[] args) {
int a, b, c, d, e, f, g; // int형 변수 a, b, c, d, e, f, g를 정의합니다.
a = 10; // 변수 a, b 를 각각 10과 3으로 초기화합니다.
b = 3;
c = a + b; // +, -, *, /, % 연산을 수행합니다.
d = a - b;
e = a * b;
f = a / b;
g = a % b;
System.out.println("a + b = " + c); // 연산 결과를 출력합니다.
System.out.println("a - b = " + d);
System.out.println("a * b = " + e);
System.out.println("a / b = " + f);
System.out.println("a % b = " + g);
}
}
// 실행결과
// a + b = 13
// a - b = 7
// a * b = 30
// a / b = 3
// a % b = 1
대입 연산자
- 단순 대입 연산자 : = 는 우변의 값을 좌변에 대입하는 역할을 합니다.
- 혼합 대입 연산자 : 다른 연산자와 단순 대입 연산자(=)가 결합해서 연산을 수행한 다음에 좌변에 대입합니다.
'연산자=' 형태로 되어 있습니다.
연산자 | 사용법 | 의미 |
+= | A += B | A = A + B |
-= | A -= B | A = A - B |
*= | A *= B | A = A * B |
/= | A /= B | A = A / B |
%= | A %= B | A = A % B |
관계 연산자
연산자 | 연산식 | 예제 | 설명 | |
연산식 | 결과 | |||
> | op1 > op2 | 3 > 7 | false | op1이 op2보다 크면 true |
>= | op1 >= op2 | 3 >= 7 | false | op1이 op2보다 크거나 같으면 true |
< | op1 < op2 | 3 < 7 | true | op1이 op2보다 작으면 true |
<= | op1 <= op2 | 3 <= 7 | true | op1이 op2보다 작거나 같으면 true |
== | op1 == op2 | 3 == 7 | false | op1과 op2가 같으면 true |
!= | op1 != op2 | 3 != 7 | true | op1과 op2가 다르면 true |
논리 연산자
논리 연산자 | 사용법 | 의미 |
& | A & B | A와 B가 모두 true 일 경우에 true A와 B 모두 검사 |
&& | A && B | A와 B가 모두 true 일 경우에 true A가 false이면 B를 검사하지 않음 |
| | A | B | A와 B중 하나 이상이 true 일 경우에 true A와 B 모두 검사 |
|| | A || B | A와 B중 하나 이상이 true 일 경우에 true A가 true이면 B를 검사하지 않음 |
! | !A | A가 true이면 false, false이면 true |