Programming Lang/Java

[Java] Operator

haema_dev 2022. 8. 27. 02:03

연산자란?

Operator (연산자)
a symbol that does something to a number or quantity in a calculation.
For example, in 7 + y, the symbol + is the operator.
계산에서 숫자나 양에 어떤 일을 하는 기호.
예를 들어, 7 + y에서 + 기호는 연산자 이다.


ex) + - * /
Operand (피연산자)
a number or quantity that has something done to it in a calculation.
For example, in 7 + y, 7 and y are the operands.
계산에 어떤 영향을 미치는 수 또는 수량.
예를 들어, 7 + y에서 7과 y는 피연산자 이다.


ex) variable, constant, literal

 

산술 :     +   -   *   /   %   <<   >>

비교 :     >   <   >=   <=   ==   !=

 

논리 :     &&   ||   !   &   |   ^   ~

삼항 :     ?   :

대입 :     =   +=   -=   *=   /=   %=   <<=   >>=   &=   ^=   |=

기타(단항) :     ++   --   +   -   ~   !   (type)

 

산술 > 비교 > 논리 > 삼항 > 대입

class JavaOperator {

    // ;가 없는 것은 식
    // ex> 4*x+3
    // 결과는 있지만 소멸된다.

    // ; 까지 있는 것은 문장
    // ex> 4*x+3;
    // 결과는 있지만 소멸된다.

    // 등호가 있는 것은 대입
    // 보통 오른쪽에서 왼쪽 방향으로 해석한다.

    // 4*x+3는 y이다.
    // ex> y = 4*x+3;
    // 결과를 변수에 담아준다.

    // ex> System.out.println(4*x+3);
    // ex> System.out.println(y);
    // 결과를 화면 콘솔에 출력해준다.

    public static void main(String[] args) {

        //1. 우선순위
        first();

        //2. 단항
        second();

        //3. 산술
        third();

    } // main


    //1. 우선순위 & 4. 비교
    public static void first() {

        System.out.println("[ ============ first 우선순위 ============ ]");

        // 산술 > 비교 > 논리 > 삼항 > 대입
        // 산술 : 사칙연산, 나머지, 쉬프트 연산자
        // 비교 : and, or 순

        int x = 1;
        int y = 0;

        //x의 앞은 마이너스가 아니라 부호연산자이다.
        //하지만 결과는 같다.
        if(-x+3 == 2) {
            System.out.println(-x+3);
        }

        //사칙연산과 똑같이 곱셈을 먼저 계산한다.
        if(x+3*y == 1) {
            System.out.println(x+3*y);
        }

        //비교 부등호보다 산술연산자를 먼저 계산한다.
        if(x+3>y-2) {
            System.out.println("x+3이 y-2보다 크다");
        }else{
            System.out.println("x+3이 y-2보다 크지 않다");
        }

        //논리연산자보다 비교연산자가 먼저 수행된다.
        if(x>3 && x<5) {
            System.out.println("x가 3보다 크고 5보다 작다");
        }else{
            System.out.println("x가 3보다 크고 5보다 작지 않다");

        }

        //산술, 비교, 논리 순으로 수행된다.
        if(x-2<3 || y+2>5) {
            System.out.println("x-2가 3보다 작고 y+2가 5보다 작다");
        }else{
            System.out.println("x-2가 3보다 작고 y+2가 5보다 작지 않다");
        }

        System.out.println("\n");

    } // first()


    //2. 단항
    public static void second() {
    	System.out.println("[ ============ second 단항 ============ ]");

    	//후위형
        int i=5;
        System.out.println("후위"+i);
        i++;
        System.out.println(i);

        //전위형
        i=5;
        System.out.println("전위"+i);
        ++i;
        System.out.println(i);

    System.out.println("\n");

    } // second()


    //3. 산술
    public static void third() {

    	System.out.println("[ ============ third 산술 ============ ]");

    	//연산 직전 자동형변환 발생
	//int보다 작은 타입은 int로 변환 : 정수로 나옴

        byte aaa = 1;
        short bbb = 1;
        char ccc = 1;

        System.out.println(aaa+ccc);
        System.out.println(bbb+ccc);

        //int이상의 타입들은 더 큰타입으로 변환
        int iii = 10;
        float fff = 10.111F;
        double ddd = 10.111;
        long lll = 10;

        System.out.println(iii+lll); //int + long
        System.out.println(fff+iii);//float + int
        System.out.println(ddd+fff);//double + float

        System.out.println("\n");
        
    } // third()
} // JavaOperator class
댓글수0