중앙정보기술인재개발원/JAVA

[2주차] 연산자

soidev 2025. 3. 12. 15:53

 

연산자 종류 연산자 피연산자 수 산출값 기능
산술 +   -   *    /   % 이항 숫자 사칙연산 및 나머지 계산
문자열 + 이항 문자열 두 문자열을 연결
대입 =   +=   -=   *=   /=   %= 이항 다양 우변의 값을 좌변의 변수에 대입
증감 ++   -- 단항 숫자 1만큼 증가/감소
비교 ==  >=  >  <  >=  <= 이항 boolean 값의 비교
논리 !  &  |  &&  || 단항
이항
boolean 논리 부정, 논리곱, 논리합
조건 (조건식) ? A : B 삼항 다양 조건식에 따라 A 또는 B 중 하나를 선택

 

 

√ 연산의 방향과 우선순위

  • 단항,이항,삼항 연산자 순으로 우선순위를 가짐
  • 산술,비교,논리, 대입 연산자 순으로 우선순위를 가짐
  • 복잡한 연산식에는 괄호 ()를 사용해서 우선순위를 정함
  • 피연산자 중 하나라도 문자가 들어가있으면 무조건 문자 연산됨 

 

 

 

실습 코드


public class P2 {
    public static void main(String[] args) {
        // + 문자열 연산
        String a1 = "안녕하세요";
        String a2 = " 반갑습니다.";

        String a3 = a1+a2;
        System.out.println(a3);

        String a4 = a1+a2+3;   // 문자+문자+숫자  -> 3 String으로 됨 변환함
        //피연산자 중 하나라도 문자가 들어가있으면 무조건 문자 연산됨 숫자 3이 변환됨
        System.out.println(a4);
        String a5 = a1+a2+3+4;
        System.out.println(a5);
        String a6 = a1+a2+(3+7);
        System.out.println(a6);
        String a7 = a1+a2+3*4;
        System.out.println(a7);

        char b1 = 97;
        int b2=b1+3;
        //String b3 = b2 + 7+"";//공부
        String b3= 3+b1+"안녕하세요";
        System.out.println(b3);
    }
}

 

 

← 결 과

 

 

 

 

 

 

 

📌 피연산자 타입과 결과 타입 정리

1️⃣ 동일한 타입끼리 연산

피연산자1피연산자2결과 타입예제

int int int 10 + 3 → 13 (int)
double double double 5.5 + 2.2 → 7.7 (double)
char char int 'a' + 'b' → 97 + 98 = 195 (int)

2️⃣ 서로 다른 타입끼리 연산 (자동 형 변환, Promotion)

작은 타입 → 큰 타입으로 변환 후 연산

피연산자1피연산자2결과 타입예제

byte int int (byte)10 + 5 → 15 (int)
short int int (short)3 + 7 → 10 (int)
char int int 'A' + 3 → 65 + 3 = 68 (int)
int double double 5 + 3.2 → 8.2 (double)

3️⃣ 정수 & 실수 연산 (자동 형 변환)

  • int + double → double
  • float + double → double

예제

int a = 10;
double b = 2.5;
double result = a + b; // 10 + 2.5 = 12.5 (double)

4️⃣ 강제 형 변환 (Casting)

작은 타입으로 변환할 때 명시적 형 변환 필요

피연산자1피연산자2결과 타입형 변환 예제

double int int (int) (3.7 + 2) → 5 (int)
float int int (int) (4.5f + 2) → 6 (int)
long int int (int) (100L + 2) → 102 (int)

예제

double d = 5.7;
int i = (int) d;  // 5

📌 결론

  1. 서로 다른 타입끼리 연산하면 더 큰 타입으로 변환됨 (자동 형 변환)
  2. double이 포함된 연산은 결과가 double
  3. 정수끼리 연산은 int 이상으로 결과가 나옴 (byte, short 연산 결과도 int!)
  4. 작은 타입으로 변환할 땐 Casting 필요

'중앙정보기술인재개발원 > JAVA' 카테고리의 다른 글

[JAVA] 배열  (1) 2025.03.18
[JAVA] Scanner  (1) 2025.03.17
[JAVA] Garbage Colletion(가비지 컬렉션)  (1) 2025.03.12
[JAVA] 형변환 | promotion, type casting  (1) 2025.03.11
2주차 [개발 환경 세팅하기]  (1) 2025.03.10