더북(TheBook)

맨 위에는 최우선 연산자가 있습니다. 자바에서도 괄호를 가장 먼저 연산합니다. 두 번째로 단항 연산자가 있는데요. 단항 연산자 중 증감 연산자(++, --)를 주의해야 합니다. 9장에서 증감 연산자가 앞에 붙어있는지, 뒤에 붙어있는지에 따라 값이 달라지는 것을 배웠죠. 증감 연산자의 위치는 우선순위에도 영향을 줍니다. 어떻게 달라지는지는 뒤에서 예제를 통해 자세히 알아보겠습니다. 참고로 증감 연산자가 앞에 나오면 전위 연산자, 뒤에 나오면 후위 연산자라고 부릅니다.

 

쭉 내려가 보니 이번에는 생소한 기호가 눈에 띄네요. ‘&&’, ‘||’, ‘!’입니다. 이는 논리 연산자이며 ‘&&’는 논리곱으로 and 연산자, ‘||’는 논리합으로 or 연산자라고 합니다. ‘!’은 부정의 의미로 not 연산자라고 합니다. and 연산자나 or 연산자가 괄호 없이 동등한 위치로 함께 나왔을 때는 and 연산자가 or 연산자보다 우선순위가 높습니다. 산술 연산에서 곱하기, 나누기가 더하기, 빼기보다 우선순위가 높은 것과 같습니다. not 연산자는 boolean의 값을 역전시킵니다. true!이 붙으면 false가 되고, false!을 붙이면 true가 됩니다. 논리 연산자는 13장에서 자세히 살펴보겠습니다.

 

자, 예제를 통해서 우선순위에 맞게 직접 연산하겠습니다. 먼저 OperatorExam3 클래스를 만들어 int형 변수 세 개를 선언하고 각각 5, 10, 15라는 값을 넣습니다. 그리고 세 변수를 연산해 값을 출력하겠습니다. ‘a - b * c’라는 계산식을 출력합니다. 결과를 예상하면 곱하기가 빼기보다 우선순위가 높기 때문에 ‘b * c’를 먼저 연산합니다. 다음으로 a에서 그 값을 뺍니다. 따라서 결과는 -145입니다.

public class OperatorExam3 {

    public static void main(String[] args) {
        int a = 5;
        int b = 10;
        int c = 15;

        System.out.println(a - b * c);
    }
}

 

실행결과

-145
신간 소식 구독하기
뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.