반응형
연산자 우선순위
연산자 우선순위 | 종류 | 연산자 |
1 | 최우선 연산자 | [], () |
2 | 단항 연산자 (항이 하나인 연산자) | !, -, +, ++, -- |
3 | 산술 연산자 | +, -, *, /, % |
4 | 쉬프트 연산자 | << >> >>> |
5 | 비교 연산자 | <, >, <=, ==, != |
6 | 논리 연산자 | &&, || |
7 | 삼항 연산자 | (조건)? 참 : 거짓 |
8 | 대입 연산자 | =, +=, -=, *= |
예제
하기 코드를 출력하게되면 값은 a : 12, c : 10, d : 12가 나오게되는데
여기서 가장 중요한 개념인 후위 증감연산자의 우선순위가 매우 낮다는것을 잊지 말아야 한다.
1줄씩 코드를 풀이해보자면,
1--> a : 10
2 --> a++은 후위증감이기 때문에 c:10값을 먼저 대입해주고 그러고나서 a에 +1을 한값인 a : 11이 된다.
3 --> ++a은 전위증감이기에 먼저 진행하게되어 a에 +1 해주어 a : 12, d : 12가 된다
1
2
3
4
5
6
7
8
9
|
int a=10;
int c=a++;
// 후위 증감연산자의 우선순위는 매우낮음!
int d=++a; // 전위 증감연산자의 우선순위는 매우높음!
// ++a; int d=a;
System.out.println("a: "+a);
System.out.println("c: "+c);
System.out.println("d: "+d);
|
cs |
메모장에 디버깅표를 그려가면서 계산하면 조금 더 정확하게 값을 구할 수 있다.
반응형
'JAVA' 카테고리의 다른 글
[JAVA] 재귀함수 - Stack overflow 오류 (0) | 2022.06.14 |
---|---|
[JAVA] 조건문 if, Switch (0) | 2022.06.13 |
[JAVA] 입력 Scanner (0) | 2022.06.13 |
[JAVA] 변수 (개념, 데이터타입, 형변환) (0) | 2022.06.09 |
[JAVA] 자바의 개념과 프로그래밍 구조 (0) | 2022.06.09 |