본문 바로가기

카테고리 없음

(Java) Chapter2. 연산자

1. 산술 연산자

1) 일반 연산자

System.out.println(4 + 2);  // 6
System.out.println(4 - 2);  // 2
System.out.println(4 * 2);  // 8
System.out.println(4 / 2);  // 2 (몫)
System.out.println(5 / 2);  // 2
System.out.println(2 / 4);  // 0 (0.5의 정수만)
System.out.println(4 % 2);  // 2 (나머지)
System.out.println(5 % 2);  // 1 (나머지)

2) 우선 순위 연산

System.out.println(2 + 2 * 2);      // 6
System.out.println((2 + 2) * 2);    // 8
System.out.println(2 + (2 * 2));    // 6

3) 변수 활용 연산

int a = 20;
int b = 10;
int c;

c = a + b;
System.out.println(c);       // 30

c = a - b;
System.out.println(c);       // 10

c = a * b;
System.out.println(c);       // 200

c = a / b;
System.out.println(c);       // 2

c = a % b;
System.out.println(c);       // 0

4) 증감 연산

int val;
val = 10;
System.out.println(val);    // 10
System.out.println(++val);  // 11, 1이 더해 진 상태로 결과 도출
System.out.println(val);    // 11

val = 10;
System.out.println(val);    // 10
System.out.println(val++);  // 10, 원상태로 결과 도출 후 다음 결과에는 +1 반영
System.out.println(val);    // 11

val = 10;
System.out.println(val);    // 10
System.out.println(--val);  // 9, 1이 뺀 상태로 결과 도출
System.out.println(val);    // 9

val = 10;
System.out.println(val);    // 10
System.out.println(val--);  // 10, 원상태로 결과 도출 후 다음 결과에는 -1 반영
System.out.println(val);    // 9

// 예시) 은행 대기번호 표
int waiting = 0;
System.out.println("대기 인원 : " + waiting++);     // 대기 인원 : 0
System.out.println("대기 인원 : " + waiting++);     // 대기 인원 : 1
System.out.println("대기 인원 : " + waiting++);     // 대기 인원 : 2
System.out.println("총 대기 인원 : " + waiting);     // 총 대기 인원 : 3

2. 대입 연산자

1)  대입 연산자

int num = 10;
num = num + 2;
System.out.println(num);        // 12

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

num = num * 2;
System.out.println(num);        // 20

num = num / 2;
System.out.println(num);        // 10

num = num % 2;
System.out.println(num);        // 0

 

2) 복합 대입 연산자

num = 10;
num += 2;                       // num = num + 2
System.out.println(num);        // 12

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

num *= 2;                       // num = num * 2
System.out.println(num);        // 20

num /= 2;                       // num = num / 2
System.out.println(num);        // 10

num %= 2;                       // num = num % 2
System.out.println(num);        // 0

 

3. 비교 연산자

System.out.println(5 > 3);  // 5는 3보다 크다 (참이면 true, 거짓이면 false)
System.out.println(5 >= 3); // 5는 3보다 크거나 같다 (true)
System.out.println(5 >= 5); // 5는 5보다 크거나 같다 (true)
System.out.println(5 >= 7); // 5는 7보다 크거나 같다 (false)

System.out.println(5 < 3);  // 5는 3보다 작다 (false)
System.out.println(5 <= 3); // 5는 3보다 작거나 같다 (false)

System.out.println(5 == 5); // 등호 한 번은 대입 연산으로 인식. 5는 5와 같다 (true)
System.out.println(5 == 3); // 5는 3과 같다 (false)
System.out.println(5 != 5); // 5는 5와 같지 않다 (false)
System.out.println(5 != 3); // 5는 3과 같지 않다 (true)

 

4. 논리 연산자

        boolean 김치찌개 = true;
        boolean 계란말이 = true;
        boolean 제육볶음 = true;

        System.out.println(김치찌개 || 계란말이 || 제육볶음); // 'or' 표시 = '||' (하나라도 true면 true)
        System.out.println(김치찌개 && 계란말이 && 제육볶음); // 'and' 표시 = '&&' (하나라도 false면 false)

        // And 연산
        System.out.println((5 > 3) && (3 > 1));        // true && true = true
        System.out.println((5 > 3) && (3 < 1));        // true && false = false

        // Or 연산
        System.out.println((5 > 3) || (3 > 1));        // true || true = true
        System.out.println((5 > 3) || (3 < 1));        // true || false = true
        System.out.println((5 < 3) || (3 < 1));        // false || false = false
//        System.out.println(1 < 3 < 5);               // 연속 비교 연산은 오류 발생
        
        // 논리 부정 연산
        System.out.println(!true);                     // false('!'를 앞에 두면 해당 논리의 반대를 출력)
        System.out.println(!false);                    // true
        System.out.println(!(5 == 5));                 // false
        System.out.println(!(5 == 3));                 // true

 

5. 삼항 연산자

// 결과 = (조건) ? (참의 경우 결과값) : (거짓의 경우 결과값)
int x = 5;
int y = 3;
int max = (x > y) ? x : y;
System.out.println(max);            // 5

int min = (x < y) ? x : y;
System.out.println(min);            // 3

boolean b = (x == y) ? true : false;
System.out.println(b);              // false

String s = (x != y) ? "달라요" : "같아요";
System.out.println(s);              // 달라요