반응형

연산자의 우선순위는 다음과 같다

종류 연산자 우선순위
최우선 연산자 [] , {}, ()

높음

|

|

|

|

 

낮음

단항 연산자 ++ , -- , !
산술 연산자  +, -, *, /, %
시프트 연산자 << , >> 
비교 연산자 >, <, >=, <=, ==, !=
논리 연산자 &&, ||
삼항 연산자 (조건식) ? : 
대입 연산자 =, *=, +=

사칙연산의 경우 다들 아시는 부분이니까 예시를 들도록 하겠습니다 !

 

산술연산자

        int a = 5;
        int b = 3;
 
        
        // 산술연산자
        System.out.println(a); // 5 출력
        System.out.println(b); // 3 출력
        System.out.println("a + b = " + (a+b)); // 8 출력
        System.out.println("a / b = " + (a/b));     // 1 출력    
        System.out.println("a % b = " + (a%b)); // 2 출력 (2는 나머지)
        System.out.println("a / b = " + (a/(float)b)); // 1.666.. 출력(float형식이라 소수점까지 반환!)
 
        System.out.println(a / 0.0); // Infinity
        System.out.println(a % 0.0); // 나머지 NaN 출력
        
        System.out.println(3 + 4 * 5); // 23 출력
        System.out.println((3 + 4* 5); // 35 출력
 

단항연산자

 

        //누적
        int no = 1;
        no = no + 1// 2 저장
        
        no += 1// 3 저장
        no++// 4 저장
        System.out.println("no : " + no); // 4 출력
        
        //증감 연산자
        int imsi = 5
        int result = ++imsi + 1
        System.out.println(imsi + " " + result); // 6과 7 출력
        
        int imsi2 = 5;
        int result2 = imsi2++ +1// imsi2의 값5가 1을 더하고 그 값을 result2에 준 후 imsi2 값 증가
        System.out.println(imsi2 + " " + result2); // 6과 6 출력
        System.out.println(imsi2); // 6출력
        System.out.println();
        
        
        //부호
        int imsi3 = 3;
        System.out.println(imsi3); // 3 출력
        System.out.println(-imsi3); // -3 출력
        System.out.println(-imsi3 * -1); // 3출력
 

 

소스에서 볼 수 있듯 ++imsi 는 전위 연산자이고,, imsi2++ 는 후위 연산자이다

여기서 전위 연산자란 연산 실행전에 먼저 실행 시키는 것이고, 후위 연산자란 연산 실행 후에 실행 하는 것이다.

그래서 imsi의 경우 5로 데이터 값을 주었지만 전위연산자를 통해 연산 실행 전에 실행하여 출력하였기 때문에

각각 6과 7이 출력된다.

imsi2의 경우는 후위 연산자를 사용하였기 때문에 연산을 실행하고 하여 각각 6과 6이 출력 되는 것이다.

 

추가! 문자열 사용!

        String ss1 = "대한";
        String ss2 = "민국";
        String ss3 = ss1 + ss2; // ss3에 대한민국 저장
        System.out.println("ss3 " + ss3); // 대한민국 출력
        
        System.out.println("ss3 " + ss3 + "2010"); // 대한민국2010
        System.out.println("ss3 " + ss3 + 2010); // 대한민국 2010
        
        System.out.println(10 + 20); // 30
        System.out.println(10 + Integer.parseInt("20")); // 30
        
        System.out.println(10 + "20"); // 1020
        System.out.println(10 + Integer.toString(20)); // 1020

숫자 + 숫자를 계산하는 경우 ! 30으로 출력 된다.

하지만 숫자 + "문자"와같은 경우는 10 + 문자10으로 계산하여 1020이 출력된다.

Integer.parseInt 문법은 문자를 정수로 바꿔주는 역할 !

Integer.toString 문법은 정수를 문자로 바꿔주는 역할 !

유용하게 쓰이니 알아두면 좋다

 

비교 연산자

a > b : a는 b보다 크다

a < b : a는 b보다 작다

a == b : a와 b의 값이 같은지 여부

a != b : a값이 b의 값과 다르면 true

        int a = 5;
        System.out.println(a > 3); // true
        System.out.println(a < 3); // false
        System.out.println(a == 3); // false
        System.out.println(a != 3); // true

 

논리 연산자

'참' 값이면 true를 출력 '거짓' 값이면 false를 출력

조건1 && 조건2 : 조건1도 만족하고 조건2도 만족하는 경우 true 아니면 false

조건1 || 조건2 : 조건1 또는 조건2를 만족하는 경우 true 아니면 false

        int a = 5;
        int b = 10;
        System.out.println(a > 3 && b <= 10); // true
        System.out.println(a >= 3 && b == 7); // false
        
        System.out.println(a > 6 || b <= 10 ); // true a는 6보다 크거나 b는 10보다 작거나 같다
        System.out.println(a > 3 || b < 5); // true
        
        
        System.out.println(a > 6 || b <= 10); // true
        System.out.println(a > 7 || b < ( 5 + 10)); // true
 

쉬트프 연산자

>>

 : 오른쪽으로 비트, 부호비트 이동
>>>  : 오른쪽으로 비트, 비부호 비트 이동
<<  : 좌측으로 해당하는만큼 비트 이동하고 오른쪽 비는 만큼 0으로 채운다.
 
        int ii = 8, ij;
        System.out.println("ii : " + ii + " " + Integer.toBinaryString(ii)); // 8 1000
        
        ij = ii << 1// 쉬프트 연산자 좌로 1보 남는 오른쪽은 0으로
        System.out.println("ij : " +ij); // 16
                
        ij = ii >> 2// 쉬프트 연산자 우로 2보 남는 왼쪽은 부호와 같은 값으로
        System.out.println("ij : " +ij); // 2
        
        ij = ii >>> 2// 쉬프트 연산자 우로 2보 남는 왼쪽은 0으로
        System.out.println("ij : " + ij); // 2
 

삼항 연산자

변수 = (조건) ? 참 : 거짓

조건이 참이면 : 기준 왼쪽 출력 거짓이면 오른쪽 출력

        // 삼항 연산자
        int re = (ii > 5)?100 : 50 + 20 ; // 변수 = (조건)?참:거짓
        System.out.println("re : " + re);
반응형

'JAVA > JAVA' 카테고리의 다른 글

6 - 클래스 ( class )  (0) 2020.03.03
5 - 배열(Arrary)  (0) 2020.03.03
4 - 조건문 if & switch  (0) 2020.03.03
3 - 반복문 for & while  (0) 2020.03.03
1 - 데이터 타입 & 형 변환  (0) 2020.03.02

+ Recent posts