연산자

서지우·2023년 7월 4일
0

JAVA

목록 보기
6/28

연산자란?

연산자(Operator)
- 어떤한 기능을 수행하는 기호(+,-,*,/ 등)

피연산자(Operand)
- 연사자의 작업 대상(변수, 상수, 리터럴, 수식)

연산자의 종류

연산자의 우선순위

- 괄호의 우선순위가 제일 높다.
- 산술 > 비교 > 논리 > 대입
- 단항 > 이항 > 삼항
- 연산자의 연산 진행방향은 왼쪽에서 오른쪽
  단, 단항, 대입 연산자만 오른쪽에서 왼쪽
  

주의사항

  1. <<, >>, >>>는 덧셈연산자보다 우선순위가 낮다.
x << 2 + 1
x << (2 + 1)
// 둘은 같음
  1. ||, |(or)는 &&, &(and)보다 우선순위가 낮다.
x < -1 || x > 3 && x < 5
x <-1 || (x > 3 && x < 5)
// 둘은 같음

증감연산자 - ++, --

증가연산자(++)
: 피연산자의 값을 1 증가시킨다

감소연산자
: 피연산자의 값을 1 감소시킨다.

실습 - ch02 / S01.java

주석으로 설명..

package ch03;

public class S01 {
    public static void main(String[] args) {
        int num = 10;

        // 증감 연산자
        // 앞에 있으면 계산이 다 끝난 다음에
        // 값이 대입된다.
        System.out.println(++num);//11
        System.out.println(num);//11

        int num1 = 20;

        // 증감 연산자가 뒤에 있으면
        // 대입이 된 이후에 계산이 시작된다.
        System.out.println(num1++);//20
        System.out.println(num1);//21

        int num2 = 30;
        int num3 = num2++;

        System.out.println(num3);//30
    }
}

부호연산자(+, -)와 논리부정연산자(!)

부호연산자(+, -)
: '+'는 피연산자에 1을 곱하고 '-'는 피연산자에 -1을 곱한다.

논리부정연산자(!)
: true는 false, false는 true로 피연산가 boolean일 때만 사용가능

실습 - ch02 / S02.java

주석으로 설명..

package ch03;

public class S02 {
    public static void main(String[] args) {
        int num = 10;

        System.out.println(-num);//-10

        int num1 = -20;

        System.out.println(-num1);//20

        boolean check = false;

        System.out.println(!check);//true

        
    }
}

비트전환연산자(~)

- 정수를 2진수로 표현했을 때, 1을 0으로 0은 1로 바꾼다.
- 정수형에만 가능

이항연산자 특징

  1. int보다 크기가 작은 타입은 int로 변환한다.
    (byte, char, short -> int)

  2. 피연산자 중 표현범위가 큰 타입으로 형변환한다.




나머지연산자(%)

- 나누기한 나머지를 반화
- 홀수, 짝수 등 배수검사에 주로 사용

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

- 기본형(boolean 제외)과 참조형에 사용할 수 있으나 참조형에는 ==와 !=만 사용가능

비트연산자( & | ^)

논리연산자(&& ||)

- 반드시 boolean이여야 하며 연산결과도 boolean이다.
- &&가 ||보다 우선순위가 높다.

OR연산자(||)
: 어느 한쪽이 true이면 true

AND연산자(&&)
: 양 쪽 모두 true이면 true

삼항연산자 (? :)

(조건식) ? 식1 : 식2

대입연산자( = op=)

실습 - ch03 / S04.java

주석으로 설명..

package ch03;

public class S04 {
    public static void main(String[] args) {
        System.out.println(3 > 2);//true

        boolean check = 100 >= 100;

        boolean check1 = true && true;
        System.out.println(check1); //true

        boolean check2 = true && false;
        System.out.println(check2); //false

        boolean check3 = false && false;
        System.out.println(check3); //false

        boolean check4 = true || false;
        System.out.println(check4); //true

        // 계산을 6번
        boolean check5 = true && true && true && true && true && false;
        // 계산을 1번
        // 로직을 짤 때 and 조건을 걸 때에는 false가 자주나오는 조건을 앞에 건다.
        boolean check6 = false && true && true && true && true && true;
        System.out.println(check5);//false
        System.out.println(check6);//false

        // 계산을 4번
        boolean check7 = false || false || false || true;
        // 계산을 1번
        // 로직을 짤 때 or 조건을 걸 때에는 true가 자주 나오는 조건을 앞에 건다.
        boolean check8 = true || false || false || false;
        System.out.println(check7);//true
        System.out.println(check8);//true
    
    }
}

실습 - ch03 / S05.java

주석으로 설명..

package ch03;

public class S05 {
    public static void main(String[] args) {
        // 논리형 ? 사실이면 : 거짓이면

        int age = 70;

        String man = age > 65 ? "할아버지" : "아저씨";
        
        System.out.println(man); //할아버지

        // 삼항 연산자를 겹쳐서 사용하는 경우는 적다
        String man1 = age > 65 ? "할아버지" : age > 20 ? "아저씨" : "학생";
        
        System.out.println(man1);//할아버지
    }
}
profile
미래가 기대되는 풀스택개발자 공부 이야기~~

0개의 댓글