Java/모두의 자바

Chapter 02-11 연산자 우선순위

계란💕 2022. 2. 3. 15:45

02-11.1 연산자 우선순위

  (0) 최우선 연산자: . , [] , ()

  (1) 단항 연산자: ++, --, !, ~, +/- : 부정, bit변환 > 부호 > 증감

  (2) 산술 연산자:  * , / , %, +, -

  (3) 시프트 연산자: >>, <<, >>>

  (4) 비교 연산자: > < >= <= == !=

  (5) 비트 연산자: $ | ^ ~

  (6) 논리 연산자: && || !

  (7) 삼항 연산자: 조건식 ? 

  (8) 대입 연산자: = *= /= %= += -=

  

  - 증감 연산자: 전위 연산자(증감 연산자가 앞에 나올 때), 후위 연산자(증감 연산자가 뒤에 나올 때)

  - 논리 연산자: &&(and 연산자), ||(논리합 , or 연산자) , !(부정의 의미 not 연산자)

     -> and연산자와 or연산자가 함께 나오면 and연산자의 우선순위가 높다.

     -> not연산자는 boolean의 값을 역전 시킨다.

 

02-11.2 연산자 우선순위 예제

  Ex)

<hide/>

public class OperatorExam3{
	
	public static void main(String args[]){
		
		int  a = 5;
		int  b = 10;
		int  c = 15;
		
		System.out.println(a - b * c);
		System.out.println( (a - b) * c);
			
	}
}

  - 첫 번째 식은 연산자 우선순위에 따라 b * c 를 먼저 계산한다. -145 출력

  - 두 번째 식은 a - b를 먼저 계산한 다음에 c를 곱한다. -75 출력

 

02-11.3 and연산자와 or연산자

  Ex)

<hide/>

public class OperatorExam3 {
	
	public static void main(String args[]){
		
		int  a = 5;
		int  b = 10;
		int  c = 15;
		
		System.out.println( a > b && b > 5 );
		System.out.println( a > b || b > 5 );
	}
}

  - false 출력 ( a > b 는 거짓이므로 )

  - true 출력 ( b > 5 는 참이므로)

 

02-11.4 증감 연산자

  - 증감 연산자는 단항 연산자이므로 산술 연산자보다 우선순위가 높다

  - 전위 연산자

    Ex) ++a - 5 에 대해서 증감연산자인 ++a를 먼저 실행한 후, -5를 실행한다.

  - 후위 연산자

    Ex) a++ - 5 는 a를 증가시키기 전에 연산하고 출력한다.

 

  Note) 전위 연산자

<hide/>

public class OperatorExam3 {
	
	public static void main(String args[]){
		
		int  a = 5;
		int  b = 10;
		int  c = 15;
		
		System.out.println( ++a - 5 ); // 전위 연산자
		System.out.println( a );
			
	}
}

  Note) 출력 결과: 1, 6 출력

          (1) ++a 수행 -> 5 + 1 -> a는 6

          (2) a - 5 수행 -> 6 - 5 -> 결과는 1

          (3) System.out.println()에 (2)의 결과인 1을 전달

 

  Note) 후위 연산자

<hide/>

public class OperatorExam3 {
	
	public static void main(String args[]){
		
		int  a = 5;
		int  b = 10;
		int  c = 15;
		
		System.out.println( a++ - 5 ); // 후위 연산자
		System.out.println( a );
			
	}
}

  Note) 출력 결과: 0, 6 이 출력 된다. 

          (1) a - 5 수행 - > 5 - 5 -> 결과는 0

          (2) System.out.println()에 (1)의 결과인 0을 전달

          (3) a++ 수행 -> 5 + 1 -> a는 6

'Java > 모두의 자바' 카테고리의 다른 글

Chapter 03-13 논리 연산자  (0) 2022.02.03
Chapter 03-12 if문  (0) 2022.02.03
Chapter 02-10 비교 연산자  (0) 2022.02.03
Chapter 02-09 산술 연산자  (0) 2022.02.03
Chapter 02-08 기본형 형변환(Casting)  (0) 2022.02.03