article thumbnail image
Published 2022. 9. 28. 16:01

- 연산자

프로그램에서 데이터를 처리하여 결과를 산출한다.

연산에 사용되는 표시나 기호를 의미한다.

 

- 산술 연산자

+, -, *, /, %( 모듈러스, 나머지 연산)

 

- 증감 연산자

변수의 값을 1증가 시키거나 1감소 시키는 연산자

++변수 : 다른 연산을 수행하기 전에 값을 1증가시킨다. (--변수)

변수++ : 다른 연산을 먼저 수행한 후 값을 1증가시킨다. (변수--)

 

- 대입 연산자

값을 변수에 저장해주는 연산자 

=, +=, -=, *=, /=, %=


증감, 대입 연산자 사용해보기!

    public static void main(String[] args) {
        int var1 = 10, result = 10;
        System.out.println("현재 var1의 값 : " + var1);
        System.out.println("현재 var1의 값 : " + ++var1);
        System.out.println("현재 var1의 값 : " + var1);
        System.out.println("현재 var1의 값 : " + var1++);
        System.out.println("현재 var1의 값 : " + var1);

        result = result++;
        System.out.println("현재 result의 값 : " + result);

        result = var1++;
        System.out.println("현재 var1의 값 : " + var1);

    }

위 코드의 결과

reslut = result++; 의 경우 먼저 10이 대입되고 ++(증감)이 처리할 수 없어서 값이 날라가기 때문에 10이 출력된다.


 public static void main(String[] args) {
        int var1 = 100, var2 = 100, var3 = 100, var4 = 100, var5 = 100;

        var1 += 100;
        var2 -= 100;
        var3 *= 100;
        var4 /= 100;
        var5 %= 100;

        System.out.println("var1 += 100 : " + var1 );
        System.out.println("var2 -= 100 : " + var2 );
        System.out.println("var3 *= 100 : " + var3 );
        System.out.println("var4 /= 100 : " + var4 );
        System.out.println("var5 %= 100 : " + var5 );
    }

위 코드의 결과


- 논리 연산자

&&, ||,. ^(XOR), !

※ XOR은 두개의 입력이 같으면 true, 틀리면 false을 반환

 

 AND 연산

   boolean && boolean : 둘 다 모두 true일 때 true

A B 결과
true true true
true false false
false true false
false false false

 

 OR 연산

   boolean || boolean  : 둘 중 하나가 true이면 true

A B 결과
true true false
true false true
false true true
false false false

 

  NOT 연산

    !boolean   : true이면 false, false이면 true

A 결과
true false
false true

 

- 비트 연산자

&, |, ^, <<, >> (쉬프트 연산자)

 

&(and 연산)

먼저, 10진수 28을 2진수로 변환

            32            16            8            4            2            1

                             1             1            1            0            0

 

28(10) -> 11100(2)

 

그리고 10진수 25를 2진수로 변환

            32            16            8            4            2            1

                              1            1            0            0            1

25(10) -> 11001(2)

 

11100 & 11001 = 11000 으로나온다. 11000(2) -> 24(10)

 

<< , >> (쉬프트 연산)

28 << 2

                             1             1            1            0            0                                 (28)

                             1             1            1            0             0           0            0     (28 << 2)

---------------------------------------------------------------------------------------------------------------------------------

                            64            32         16           8             4            2            1     = 112(10)

 

 

- 삼항 연산자

3개의 피연산자를 필요로 하는 연산자이먀, 앞의 조건식에 따라 콜론(:) 앞 뒤의 피연산자가 선택된다.

조건식 ? 값1 : 값2

조건식이 true이면 값1을 선택, false이면 값2를 선택한다.

 


 

실습하기!

 

    public static void main(String[] args) {
    /*  성적 프로그램
        1. 3과목 이상의 변수를 만들어 값을 저장
        ex) kor = 80;
        2. 위 점수를 변수에 저장하고 총점과 평균, 합격 여부를 구함
        단, 합격 여부는 평균을 기준으로 60점 이상은 합격, 미만은 불합격
        3. 합격 여부는 삼항연산자를 활용*/
        
        int kor = 80;
        int math = 98;
        int eng = 89;
        
        int sum = (kor + math + eng);
        double avg = sum / 3;

        System.out.println("총점 : " + sum
                            + " 평균 : " + avg);
        System.out.println(avg >= 60 ? "합격" : "불합격");

    }

삼항 연산자는 값으로 반환되기때문에 바로 프린트문에 넣어서 출력할 수있다.

 

위 코드의 결과

복사했습니다!