코딩 공부/JAVA

김영한 자바 입문 - 3

recordmastd 2025. 3. 3. 21:31

연산자 사용 예시

public class Operator1 {
    public static void main(String[] args) {
        int a = 5;
        int b = 2;

        int sum = a + b;
        System.out.println("a + b = " + sum);	// a + b = 7 출력
    }
}

- 자바에서는 int 형태인 sum을 string 형태로 자동 변환해주므로 오류가 발생하지 않음

(파이썬이나 C++같은 언어는 자동 변환을 해주지 않아서 string과 int 데이터 사이 +를 넣으면 오류가 발생함)

 

나눗셈 연산자

// 나눗셈
int div = a / b;
System.out.println("a / b = " + div);	// a / b = 2 출력

- int 형끼리 계산을 하면 결과값도 int형으로 나옴 (따라서 출력값은 2.5가 아닌 2)

int a = 10;
int b = 0;

int div = a / b;
System.out.println("a / b = " + div);	// ArithmetException 오류 발생 후 실행이 멈춤

- 0으로 수를 나누는 것은 수학적으로도 불가능하므로 프로그래밍에서도 불가능함

- ArithmetException이 발생하면 실행이 멈추므로 뒤에 있는 코드가 실행되지 않음

 

연산자 우선순위

int sum3 = 2 * 2  + 3 * 3	//13
int sum4 = (2 * 2) + (3 * 3)	//13

- 두 값의 연산순서는 똑같지만 가독성을 위해 sum4와 같이 괄호를 사용하는 편이 권장됨

(코드가 길어도 단순한 것이 유지보수하기 쉬움)

>>>연산자 우선순위가 조금이라도 복잡하거나 애매하면 괄호 사용하기!

 

전위 증감 연산자, 후위 증감 연산자

public static void main(String[] args) {
        //전위 증감 연산자 사용 예시
        int a = 1;
        int b = 0;

        b = ++a;    //a의 값을 먼저 증가시키고, 그 결과를 b에 대입
        System.out.println("a = " + a + " , b = " + b);
        //a = 2, b = 2

        //후위 증감 연산자 사용 예시
        a = 1;
        b = 0;
        
        b = a++;
        System.out.println("a = " + a + " , b = " + b);
        //a = 2, b = 1
    }

- 전위 증가 연산자: a의 값 1 증가 (a = 2) → a값을 b에 대입 (b = 2)   >>> 연산 후 대입

- 후위 증가 연산자: a값을 b에 대입 (b = 1) → a의 값 1 증가 (a = 2)   >>> 대입 후 연산

++a;
a++;

- 증감 연산자를 단독으로 쓰면 본인의 값만 증가함. 따라서 위의 값은 둘 다 동일

 

비교 연산자

: 비교 연산자의 결과값은 무조건 boolean형으로 나옴

 

- 문자열을 비교할 때는 ==와 같은 연산자가 아닌 .equals() 메서드를 사용

public static void main(String[] args) {
        String str1 = "문자열1";
        String str2 = "문자열2";

        boolean result1 = "hello".equals("hello"); //리터럴 비교
        boolean result2 = str1.equals("문자열1"); //문자열 변수, 리터럴 비교
        boolean result3 = str1.equals(str2); // 문자열 변수 비교

        System.out.println(result1); //true
        System.out.println(result2); //true
        System.out.println(result3); //false
    }

- 리터럴 비교: 직접 문자열을 입력하여 비교

 

논리 연산자

: boolean형을 비교하는 데 사용

 

- 비트 연산자는 실무에서 거의 사용하지 않음(사용해도 하드웨어 쪽이나 사용 가능성 있음)