코딩 공부/Java

[Java]Chpater 1 - 06) 사칙연산

sintory-04 2025. 2. 25. 13:59

    1. 사칙연산

    1) 기본적인 연산

    int a = 10;
    int b = 3;
    
    // 기본 사칙연산
    int sum = a + b;
    System.out.println("sum = " + sum);
    
    int sub = a - b;
    System.out.println("sub = " + sub);
    
    int mul = a * b;
    System.out.println("mul = " + mul);
    
    int div = a / b;
    System.out.println("div = " + div); // ⚠️ 3 (소수점 버려짐)
    
    double div2 = a / 3.0;
    System.out.println("div2 = " + div2); // ✅ 3.333... (소수점 유지)
    • 정수끼리 나누게 되면 소수점이 버려집니다.
    • 소수점을 유지하려면 소수점과 연산을 시켜야 합니다.

    2) 모듈러 연산 / 몫 계산하기

    - 시간을 연산할시 좋음.

    int mod = 10 % 3;
    System.out.println("mod = " + mod); // 나머지: 1
    
    int mod2 = 15 % 4;
    System.out.println("mod2 = " + mod2); // 나머지: 3
    
    int mod3 = 20 % 7;
    System.out.println("mod3 = " + mod3); // 나머지: 6

    2. 대입 연산자

    1) 대입연산자

    • 대입연산자(=) 는 변수에 값을 할당하는데 사용됩니다.
    • 연산자 중에 제일 마지막에 수행됩니다.
    int num = 5;
    System.out.println("변수 num의 값: " + num); // 10

    2) 복합 대입 연산자(+= ,-= , *= , /= , %= )

    • 복합대입연산자는 누적 값을 구할 때 자주 활용
    int num = 5;
    num += 3;  // num = num + 3;
    System.out.println("+= 결과: " + num); // 8
    
    num -= 2;  // num = num - 2;
    System.out.println("-= 결과: " + num); // 6
    
    num *= 2;  // num = num * 2;
    System.out.println("*= 결과: " + num); // 12
    
    num /= 3;  // num = num / 3;
    System.out.println("/= 결과: " + num); // 4
    
    num %= 3;  // num = num % 3;
    System.out.println("%= 결과: " + num); // 1

    3. 증감 연산자

    1) 증감연산자 활용

    • 증감 연산자는 변수를 1 증가 (++) 또는 1 감소 (--) 시킬 때 사용
    int a = 5;
    System.out.println("++a: " + (++a));  // 6 (먼저 증가 후 출력)
    System.out.println("현재 a 값: " + a);  // 6

    2) 전위연산과 후위연산

    • 증감 연산자는 변수 앞(++i)에 위치하는지 뒤(i++)에 위치하는 지에 따라 실행 순서가 달라집니다.
    // 1. 전위연산
    int a = 5;
    System.out.println("++a: " + (++a));  // 6 (먼저 증가 후 출력)
    System.out.println("현재 a 값: " + a);  // 6
    
    // 2. 후위연산
    int b = 5;
    System.out.println("b++: " + (b++));  // 5 (출력 후 증가)
    System.out.println("현재 b 값: " + b);  // 6

    4. 비교연산자

    1) 같음 연산자

    • 두 값이 같으면 true , 다르면 false를 반환 합니다.
    System.out.println("10 == 10: " + (10 == 10)); // true

    2) 다름 연산자

    • 두 값이 다르면 true , 같으면 false를 반환합니다.
    System.out.println("10 != 5: " + (10 != 5)); // true

    3) 크기 비교 연산자

    • 양쪽의 값을 비교했을때 논리에 맞으면 true를 반환
    • 논리에 어긋나면 false를 반환합니다.
    System.out.println("10 < 5: " + (10 < 5)); // false
    System.out.println("10 >= 10: " + (10 >= 10)); // true
    System.out.println("10 <= 5: " + (10 <= 5)); // false
    연산자 설명 예제 결과
    == 두 값이 같으면 true 10 == 10 true
    != 두 값이 다르면 true 10 != 5 true
    > 왼쪽 값이 크면 true 10 > 5 true
    < 왼쪽 값이 작으면 true 10 < 5 false
    >= 왼쪽 값이 크거나 같으면 true 10 >= 10 true
    <= 왼쪽 값이 작거나 같으면 true 10 <= 5 false

    5. 논리연산자

    1) AND 연산자(&&) 는 두 조건이 모두 참일 때 true 를 반환합니다.

    2) OR 연산자(||) 둘 중 하나라도 참이면 true 를 반환합니다.

    • OR연산자는 일반적인 키보드에서 Enter 키 위에 위치해있습니다.
    • Shift + \를 누르면 |을 입력할 수 있습니다.

    3) NOT 연산자(! ) true 일때 false로, false 일때 true 로 변경합니다.

    • truefalse
    • falsetrue
    연산자 설명 예제 결과
    && (AND) 두 조건이 모두 참일 때만 true true && true true
        true && false false
        false && true false
        (OR) 하나라도 참이면 true
        true  
        false  
        false  
    ! (NOT) 참이면 거짓, 거짓이면 참으로 변경 !true false
        !false true

    6. 연산자 우선순위

    1) 산술연산자 우선순위

    • 기본적인 수학 사칙연산의 우선순위 적용

    2) 기본 연산자 우선순위

    • 산술 → 비교 → 논리 → 대입
    boolean flag = 10 + 5 > 12 && true;
    System.out.println(flag);
    // 실행 순서: (10 + 5) > 12 && true : 산술
    // → 15 > 12 && true : 비교
    // → true && true : 논리
    // → flag = true 대입

    3) 비교 연산자와 산술연산자의 우선순위

    • 산술 연산 → 비교 연산

    4) 논리 연산자 우선순위 ( !&&|| )

    • ! 가 제일 먼저 연산 → 두 번째로 && → 마지막으로 ||

    7. 문자열 비교

    • 문자열 비교는 항상 .equals() 를 활용하세요.(동등성/동일성 문제)
    • ==는 문자열 값을 비교하는 것이 아니라 메모리 주소를 비교하는 방식
    String text1 = "Hello";
    String text2 = "Hello";
    boolean isEqual = text1.equals(text2);
    System.out.println("text1과 text2가 같은가? " + isEqual);