우선 순위 | 연산자 | 내용 | 연산 방향 |
---|---|---|---|
1 | () | 괄호 | - |
2 | ++ | 후위 증가 연산자 (postfix) | 👉 |
-- | 후위 감소 연산자 (postfix) | 👉 | |
3 | ! | 논리 연산자 (NOT) | 👈 |
~ | 비트 연산자 (NOT) | 👈 | |
+ | 양의 부호 (단항 연산자) | 👈 | |
- | 음의 부호 (단항 연산자) | 👈 | |
++ | 전위 증가 연산자 (prefix) | 👈 | |
-- | 전위 감소 연산자 (prefix) | 👈 | |
(타입) | 타입 변환 연산자 | 👈 | |
4 | * | 곱셈 연산자 | 👉 |
/ | 나눗셈 연산자 | 👉 | |
% | 나머지 연산자 | 👉 | |
5 | + | 덧셈 연산자 (이항 연산자) | 👉 |
- | 뺄셈 연산자 (이항 연산자) | 👉 | |
6 | << | 비트 왼쪽 시프트 연산자 | 👉 |
>> | 비트 오른쪽 시프트 연산자 (부호 유지) | 👉 | |
>>> | 비트 오른쪽 시프트 연산자 (부호 무시) | 👉 | |
7 | < | 관계 연산자 (작은) | 👉 |
<= | 관계 연산자 (작거나 같은) | 👉 | |
> | 관계 연산자 (큰) | 👉 | |
>= | 관계 연산자 (크거나 같은) | 👉 | |
instance of | 인스턴스의 타입 반환 | 👉 | |
8 | == | 관계 연산자 (같은) | 👉 |
!= | 관계 연산자 (같지 않은) | 👉 | |
9 | & | 비트 연산자 (AND) | 👉 |
10 | ^ | 비트 연산자 (XOR) | 👉 |
11 | | | 비트 연산자 (OR) | 👉 |
12 | && | 논리 연산자 (AND) | 👉 |
13 | || | 논리 연산자 (OR) | 👉 |
14 | ? : | 삼항 조건 연산자 | 👈 |
15 | = | 대입 연산자 및 복합 대입 연산자 (+=, -=, *=, /=, %=, <<=, >>=, >>>= , &=, ^=, |=) | 👈 |
// ++a (prefix, 전위 증감 연산자)
// 증감 연산이 먼저 수행된 후, 나머지 연산을 수행
a = 1, b = 0
b = ++a
👇
a = a + 1 // a의 증가 연산이 먼저 진행, a = 2
b = a // 이후에 a를 대입 b = 2
// 결과 : a = 2, b = 2
// a++ (postfix, 후위 증감 연산자)
// 다른 연산이 먼저 수행된 후, 증감 연산을 수행
a = 1, b = 0
b = a++
👇
b = a; // a의 값을 먼저 b에 대입 b = 1
a = a + 1; // 이후에 a의 값을 증가 a = 2
결과 : a = 2, b = 1
✅다른 연산 없이 증감 연산자를 단독으로 사용할 경우에는 본인의 값만 증가하기 때문에 전위와 후위의 결과가 같음
// 조건 ? 참인 경우 : 거짓인 경우
int a = 10;
int b = 20;
int result = a > b ? 1 : -1;
System.out.println(result); // -1
특정 조건에 따른 연산을 수행하고 싶을때 사용
- if문
if (조건식) { 실행문; // 조건식 결과가 true일 때 실행 }
- if-else문
if (조건식) { 실행문; // 조건식 결과가 true일 때 실행 } else { 실행문; // 조건식 결과가 false일 때 실행 }
- if-else if문
if (조건식1) { 실행문; // 조건식1 결과가 true일 때 실행 } else if (조건식2) { 실행문; // 조건식1 결과가 false이면서, 조건식2 결과가 true일 때 실행 } else { 실행문; // 조건식 1과 2의 결과가 모두 false일 때 실행 }
- 중첩 if문
if (조건식1) { if (조건식2) { 실행문; // 조건식 1과 2의 결과가 모두 true일 때 실행 } else { 실행문; // 조건식1 결과가 true이면서, 조건식2 결과가 false일 때 실행 } } else { 실행문; // 조건식1 결과가 false일 때 실행 }
- switch문
switch (조건식) { case val1: 실행문; // 조건식의 결과값이 val1인 경우 실행 break; case val2: 실행문; // 조건식의 결과값이 val2인 경우 실행 break; default: 실행문; // 조건식의 결과값이 위의 어떤 값에도 해당하지 않을 때 실행 }
- for문
for (초기값; 조건식; 증감식) { 실행문; }
- 향상된 for문
// 변수명은 아무거나 설정 가능 for (변수타입 변수명 : 목록변수) { 실행문; }
int[] numArr = {1, 2, 3, 4}; for (int num : numArr) { System.out.print(num); // 1 2 3 4 }
- while문
while (조건식) { // 조건이 true라면 실행 실행문; }
- do-while문
do { // 조건이 true라면 실행 // 단, 조건식이 나중에 위치하기 때문에 한 번은 무조건 실행됨 실행문; } while (조건식);
// break 명령 범위
for (int i = 0; i < 10; i++) {
System.out.println("i: " + i);
if (i == 2) {
break; // i 가 2일때 가장 바깥 반복문이 종료됩니다.
}
for (int j = 0; j < 10; j++) {
System.out.println("j: " + j);
if (j == 2) {
break; // j 가 2일때 가장 안쪽 반복문이 종료됩니다.
}
}
}
// 출력
i: 0 // 바깥 반복문 부터 수행 시작
j: 0 // 안쪽 반복문 1회차 수행
j: 1
j: 2 // j 가 2일때 안쪽 반복문 break
i: 1
j: 0 // 안쪽 반복문 2회차 수행
j: 1
j: 2 // j 가 2일때 안쪽 반복문 두번째 break
i: 2 // i 가 2일때 바깥 반복문도 break 호출되어 종료
// continue 명령
int number = 0;
while(number < 3) {
number++;
if (number == 2) {
continue; // 2일때 반복 패스
}
System.out.println(number + "출력");
}
// 출력
1출력
3출력