Java 연산자 우선순위

습토리·2025년 2월 24일
0

Java

목록 보기
18/32

Java에서 연산자는 특정한 우선순위를 가지며, 이 우선순위에 따라 연산이 수행됩니다. 연산자 우선순위를 정확히 이해하지 않으면 코드가 예상과 다르게 동작할 수 있습니다. 이번 글에서는 Java의 연산자 우선순위를 자세히 정리하고, 왜 그런 순서가 정해졌는지도 설명하겠습니다.


🔹 Java 연산자 우선순위 표

우선순위 (높음 → 낮음)연산자설명
1()괄호 (가장 높은 우선순위)
2++, --, !, ~, +, -단항 연산자 (증감, 논리 NOT, 비트 NOT, 부호 연산)
3*, /, %곱셈, 나눗셈, 나머지 연산
4+, -덧셈, 뺄셈
5<<, >>, >>>비트 이동 연산
6<, <=, >, >=, instanceof비교 연산
7==, !=동등 비교 연산
8&&논리 AND
9논리 OR
10?:삼항 연산자
11=, +=, -=, *=, /=, %=대입 연산자 (가장 낮은 우선순위)

🔹 연산자 우선순위에 따른 연산 흐름

연산은 산술 → 비교 → 논리 → 대입 순서로 진행됩니다.

📌 예제 1: 기본 연산자 우선순위

boolean flag = 10 + 5 > 12 && true;
System.out.println(flag);

실행 순서:
1. 10 + 515 (산술 연산)
2. 15 > 12true (비교 연산)
3. true && truetrue (논리 연산)
4. flag = true (대입 연산)

즉, 산술 → 비교 → 논리 → 대입 순서로 연산이 수행됩니다.


🔹 논리 연산자의 우선순위 (!&&||)

📌 예제 2: 논리 연산자 우선순위

boolean result = true || false && !false;
System.out.println(result);

실행 순서:
1. !falsetrue (!가 가장 먼저 수행됨)
2. false && truefalse (&&||보다 우선순위가 높음)
3. true || falsetrue (|| 연산 수행)

📌 &&||보다 먼저 실행될까?

  • &&둘 다 true여야 true를 반환하는 엄격한 조건이므로 먼저 검사해야 함.
  • ||하나만 true여도 true를 반환하는 느슨한 조건이라 나중에 처리해도 무방함.

결론: && 연산을 먼저 해서 확실한 결과를 만든 후 || 연산을 수행하는 것이 논리적으로 안전합니다.


🔹 연산자 우선순위를 확실하게 이해하는 방법

1️⃣ 괄호 ()를 적극적으로 사용하자!

  • 우선순위를 정확하게 제어할 수 있음.
  • 예: boolean result = (true || false) && false;

2️⃣ 단락 평가(Short-Circuit Evaluation) 이해하기

  • &&: 첫 번째 값이 false이면 뒤를 보지 않음.
  • ||: 첫 번째 값이 true이면 뒤를 보지 않음.
  • 예:
    boolean test = false && someExpensiveMethod(); // 뒤의 연산은 실행되지 않음.
    boolean test2 = true || someExpensiveMethod(); // 뒤의 연산은 실행되지 않음.

3️⃣ 우선순위가 헷갈리면 괄호로 명확하게 표현!

  • a + b * c 보다 (a + b) * c처럼 명확하게 작성하면 가독성이 높아짐.

🎯 마무리

Java 연산자 우선순위는 산술 → 비교 → 논리 → 대입 순서로 진행됩니다. 논리 연산자의 경우 !&&|| 순으로 실행되며, &&||보다 먼저 실행되는 이유는 논리적으로 더 엄격한 검사를 수행해야 하기 때문입니다.

우선순위가 헷갈린다면 괄호를 사용해 명확하게 표현하는 것이 좋은 코드 스타일입니다! 🎯


profile
재미난 삶을 살다

1개의 댓글

comment-user-thumbnail
2025년 3월 15일

답글 달기