Java/강의

[📃 자바 입문] 연산자

가지코딩 2025. 4. 30. 14:32

연산자와 연산식

연산: 데이터를 처리하여 결과를 산출하는 것

x = y + z;
  • 연산자(Operations): 연산에 사용되는 표시나 기호 (+, -, *, /, &, =, ...)
  • 피연산자(Operand): 연산 대상이 되는 데이터 (리터럴, 변수)
  • 연산식(Expressions): 연산자와 피연산자를 이용하여 연산의 과정을 기술한 것

 

연산자의 종류

  • 부호 연산자
    • 값의 부호를 나타내는 단항 연산자
    • + (양수 부호), - (음수 부호)
  • 증감 연산자
    • 변수의 값을 1씩 증가하거나 감소시킴
    • ++ (증가), -- (감소)
    • 전위: ++a, 값을 먼저 증가시키고 그 값을 사용
    • 후위: a++, 현재값을 먼저 사용하고, 그 후 증가
  • 산술 연산자
    • + (덧셈), - (뺄셈), * (곱셈), / (나눗셈), % (나머지)
  • 비교 연산자
    • 두 값을 비교하여 boolean 타입 결과를 반환한다.
    • == (같다), != (다르다), < (작다), > (크다), <= (작거나 같다), >= (크거나 같다)
  • 대입 연산자
    • 변수에 값을 할당(대입)할 때 사용하는 연산자
    • 기본 대입 연산자: = (대입)
    • 복합 대입 연산자: += (더한 값을 대입), -= (뺀값을 대입), *= (곱한 값을 대입), /= (나눈 값을 대입), %= (나머지를 대입)
  • 논리 연산자
    • boolean 값(참/거짓)을 가지고 논리적인 판단을 내리는 데 사용하는 연산자
    • && (논리 AND): 피연산자가 모두 true면 true
    • || (논리 OR): 피연산자 중 하나라도 true 면 true
    • ! (논리 NOT): true → false, false → true
    • ^ (논리 XOR): 두값이 다를 때만 true
  • 비트 연산자
    • 정수형 값(int, long 등)을 이진수 단위로 직접 조작할 때 사용하는 연산자, 논리 연산자와는 달리 boolean이 아닌 정수형 숫자에 사용한다.
    • & (비트 AND), | (비트 OR), ^ (비트 XOR), ~ (비트 NOT), << (왼쪽 시프트), >> (오른쪽 시프트), >>> (오른쪽 시프트(0채움))
  • 삼항 연산자
    • 조건에 따라 값을 선택하는 연산자, if-else의 축약 버전
    • 조건식 ? 참일 때 값 : 거짓일 때 값;

 

연산자 우선순위

 

 

[실습]

산술 연산자

// i와 j의 합
i + j;
// i와 j의 차
i - j;
// i와 j의 곱
i * j;
// i를 j로 나눈 몫
i / j;
// i를 j로 나눈 나머지
i % j;

 

 

비교 연산자

int i = 10; 
int j = 10;    

// i와 j가 같은지 비교하는 연산자
System.out.println(i == j );    // true

// i와 j가 다른지 비교하는 연산자
System.out.println(i != j );    // false

// i가 j보다 작은지 비교하는 연산자
System.out.println(i < j);      // false

// i가 j보다 작거나 같은지 비교하는 연산자
System.out.println( i <= j);    // true

// i가 j보다 큰지 비교하는 연산자
System.out.println(i > j);      // false

// i가 j보다 크거나 같은지 비교하는 연산자
System.out.println(i >= j);     // true

 

 

대입 연산자

int i = 10;
i += 10; // i = i + 10;  과 같은 의미 

System.out.println(i);  		// 20
System.out.println(i -=5);		// 15
System.out.println(i);			// 15

 

 

논리 연산자

boolean a = true;
boolean b = false;

System.out.println(a && b);  // false : 둘 다 true여야 true
System.out.println(a || b);  // true  : 하나라도 true면 true
System.out.println(!a);      // false : a가 true니까, 반대로 false
System.out.println(a ^ b);   // true  : 둘이 다르므로 true

 

 

비트 연산자

int a = 5;    // 0101
int b = 3;    // 0011

System.out.println(a & b);  // 1
System.out.println(a | b);  // 7
System.out.println(a ^ b);  // 6
System.out.println(~a);     // -6 (2의 보수 방식)
System.out.println(a << 1); // 10
System.out.println(a >> 1); // 2

 

 

삼항 연산자

String ampm = hour < 12 ? "오전" : "오후";