자바의 연산자

제민·2024년 7월 2일

Java 개념 공부

목록 보기
4/21
post-thumbnail

연산자(Operator)

연산자는 프로그래밍 언어에서 값을 연산(계산)하는 데 사용되는 기호 또는 키워드입니다.

결합 방향과 우선순위

연산자는 결합 방향과 우선순위를 가지며, 이는 연산자의 평가 순서를 결정합니다.
대부분의 연산자는 왼쪽에서 오른쪽으로 결합됩니다.

우선순위연산자연산 방향
1일차식( ) [ ]-------->
2단항! ++ -- + -<--------
3산술% /-------->
4산술+ --------->
5관계< > <= >=-------->
6관계== !=-------->
7논리곱&&-------->
8논리합ㅣㅣ-------->
9조건? :-------->
10대입= += -= *= %= /=<--------

대입 연산자와 산술 연산자

대입 연산자와 산술 연산자는 기본적인 수학적 연산을 수행할 때 사용됩니다.

  • =: 대입 연산자, 변수에 값을 대입합니다.
  • +: 덧셈 연산자
  • -: 뺄셈 연산자
  • *: 곱셈 연산자
  • /: 나눗셈 연산자
  • %: 나머지 연산자
int a = 10;
int b = 5;
int sum = a + b; // 15
int diff = a - b; // 5
int prod = a * b; // 50
int quot = a / b; // 2
int rem = a % b; // 0

복합 대입 연산자

복합 대입 연산자는 대입 연산자와 산술 연산자를 결합한 형태로, 편리하게 사용할 수 있습니다.

  • +=: 더한 후 대입
  • -=: 뺀 후 대입
  • *=: 곱한 후 대입
  • /=: 나눈 후 대입
  • %=: 나머지를 구한 후 대입
int a = 10;
a += 5; // a = a + 5; -> a는 15
a -= 3; // a = a - 3; -> a는 12
a *= 2; // a = a * 2; -> a는 24
a /= 4; // a = a / 4; -> a는 6
a %= 3; // a = a % 3; -> a는 0

관계 연산자

관계 연산자는 두 값의 관계를 비교하여 true 또는 false를 반환합니다.

  • <: 작다
  • >: 크다
  • <=: 작거나 같다
  • >=: 크거나 같다
  • ==: 같다
  • !=: 다르다
int a = 10;
int b = 4;
boolean res1 = a > b; // true
boolean res2 = a < b; // false
boolean res3 = a == 10; // true
boolean res4 = b != 5; // false

논리 연산자

논리 연산자는 논리적 관계를 표현할 때 사용되며, boolean 타입의 값을 반환합니다.

  • &&: AND 연산자 (A && B는 A와 B 모두 true일 때 true)
  • ||: OR 연산자 (A || B는 A와 B 둘 중 하나라도 true면 true)
  • !: NOT 연산자 (!A는 A가 true면 false, false면 true)

&& AND 연산자
true && true -> true
true && false -> false
false && true -> false
false && false -> false
=> 앞의 결과가 false일 경우 뒤의 조건은 굳이 실행하지 않습니다.

|| OR 연산자
true || true -> true
true || false -> true
false || true -> true
false || false -> false
=> 앞의 결과가 true일 때 뒤의 조건은 굳이 실행하지 않습니다.

★AND 연산자는 '그리고', OR 연산자는 '또는'이라고 생각하면 편합니다.

boolean a = true;
boolean b = false;
boolean res1 = a && b; // false
boolean res2 = a || b; // true
boolean res3 = !a; // false

증감 연산자

증감 연산자는 변수의 값을 1씩 증가 또는 감소시킵니다.

  • ++: 증가 연산자 (i++는 i += 1과 같다)
  • --: 감소 연산자 (i--는 i -= 1과 같다)
int i = 10;
i++; // i는 11
i--; // i는 10

중요!

증감 연산자는 전위형과 후위형이 있습니다.
전위형(++i, --i)은 선증감 후 후처리하고,
후위형(i++, i--)은 선처리 후 후증감을 수행합니다.

int i = 10;
int pre = ++i; // pre는 11, i는 11
int post = i++; // post는 11, i는 12


//예시
int num = 0;
System.out.println(num1++); // 0(num = 1)
System.out.println(++num1); // 2(num = 2)
System.out.println(num1--); // 2(1)
System.out.println(++num1); // 2(2)
System.out.println(++num1); // 3(3)
System.out.println(num1++); // 3(4)
System.out.println(num1--); // 4(3)
System.out.println(--num1); // 2(2)
System.out.println(--num1); // 1(1)

삼항 연산자

주어진 조건식이 참인 경우와 거짓인 경우에 다른 결과 값이 나옵니다.

  • 조건식 ? 결과1 : 결과2
    조건식이 참(true)이면 결과1, 거짓(false)이면 결과2가 선택됩니다.
int num = (5>3) ? 10 : 20;// 10

예제 코드

아래는 다양한 연산자를 사용하는 예제 코드입니다:

 	public static void main(String[] args) {
        int a = 10;
        int b = 4;
        int sum = a + b;
        int diff = a - b;
        int prod = a * b;
        int quot = a / b;
        int rem = a % b;

        System.out.println("합: " + sum);
        System.out.println("차 : " + diff);
        System.out.println("곱: " + prod);
        System.out.println("나누기: " + quot);
        System.out.println("나머지: " + rem);

        a += 5;
        a -= 3;
        a *= 2;
        a /= 4;
        a %= 3; 

        boolean gre = a > b;
        boolean equ = a == 2;
        boolean dif = a != b;
        boolean and = (a > 1) && (b < 10);
        boolean or = (a < 1) || (b > 10);
        boolean not = !and;	

        System.out.println("a가 b보다 크다 : " + gre);
        System.out.println("a는 2이다: " + equ);
        System.out.println("a는 b가 아니다: " + dif);
        System.out.println("a가 1보다 크고 b가 10보다 작다: " + and);
        System.out.println("a가 1보다 작거나 b가 10보다 크다: " + or);
        System.out.println("and가 true면 false, false면 true: " + not);

        int i = 10;
        int pre = ++i;
        int post = i++;
        int pred = --i;
        int postd = i--;

        System.out.println("전위증가: " + pre);
        System.out.println("전위감소: " + post);
        System.out.println("후위증가: " + pred);
        System.out.println("후위감소: " + postd);
    }
    }

비트연산자는 나중에 자세하게 다루겠습니다.

profile
초보부터 시작하는 개발자 생활

0개의 댓글