멋사 Backend 9일차 🦁

신재원·2023년 4월 27일

🚀 Java

💪 연산자

연산자 란?

  • 데이터를 처리하여 결과를 반환하는것을 연산이라고 합니다.
    • 그러한 연산에 필요한 표시나 기호를 "연산자" 라고 합니다.

산술 연산자
증감 연산자
비교 연산자
등.....

🍗 산술 연산자

public class Main {
    public static void main(String[] args) {

        int number = 25;
        
        number++; // number = number + 1, number += 1; 과 같은의미
        System.out.println("number = " + number); // 26
        
        number--; // number -= 1; 과 같은 의미
        System.out.println("number = " + number); // 25

        number %= 10; 
        System.out.println("number = " + number); // 5

        /*
        0인 이유는 위의 로직에서 number %=10을 했기때문에 
        number는 5로 할당되어있습니다. 
        */
        // 0
        number /= 10; 
        System.out.println("number = " + number);
    }
}

% = 나머지
/ = 몫
% 연산과 / 는 알고리즘 문제에서 많이 나옴으로 잘 숙지해둬야된다.

🤿 증감 연산자

증감 연산자 란 ?

피연산자의 값을 1 증가 또는 1 감소시키는 연산자로, 피연산자의 위치에따라 값이 달라집니다.

  • 코드를 통해 설명하겠습니다.
public class Main {
    public static void main(String[] args) {
        int number1 = 5;
        System.out.println(++number1); // 출력: 6
        System.out.println(number1);   // 출력: 6

        int number2 = 10;
        System.out.println(number2--); // 출력: 10
        System.out.println(number2);   // 출력: 9
    }
}
  • 증감 연산자가 앞에 붙은 경우 ++number1 값을 먼저 증가합니다.
  • 증감 연산자가 뒤에 붙은 경우 number2-- 로직을 작성한 해당 줄에서는 증감이 적용되지 않으며, 작성한 로직 다음 줄 부터 적용됩니다.

✔ 뒤에 붙이는 증감연산자를 많이 사용하지만 가끔 가다 앞에 붙은 증감 연산자도 사용합니다.

🐱‍🚀 비교 연산자

비교 연산자란?

변수 (Variable)와 상수의 값을 비교할때 사용하는 연산자 이며, 결과 값이 항상 true / false 인 논리값 (boolean) 이어야 합니다.

public class Main {
    public static void main(String[] args) {
        int number1 = 5;
        int number2 = 10;

        boolean isNumberCompare = number1 < number2;

        System.out.println(isNumberCompare); // true
    }
}
  • number1 변수가 number2 변수보다 값이 큼으로 true 값이 반환됩니다.
  • 비교 연산자
    • 이 사진에서 자세히 봐야될점은 !가 붙은 연산자이다.
    • !가 붙은 연산자는 반대 (부정)이 된다고 생각해야됩니다.

🐱‍👓 비트 연산자

  • 내부적으로 bit 단위로 변경한후 연산을 하는 연산자 입니다.

1.비트 AND 연산자(&) : 두 비트가 모두 1인 경우 1을 반환하고, 그 외에는 0을 반환합니다.

int a = 5; // 이진수로 101
int b = 3; // 이진수로 011
int result = a & b; // 101 AND 011 = 001 (이진수)
System.out.println(result); // 출력 결과: 1

2.비트 OR 연산자(|) : 두 비트 중 하나 이상이 1인 경우 1을 반환하고, 그 외에는 0을 반환합니다.

int a = 5; // 이진수로 101
int b = 3; // 이진수로 011
int result = a | b; // 101 OR 011 = 111 (이진수)
System.out.println(result); // 출력 결과: 7

3.비트 XOR 연산자(^) : 두 비트가 다른 경우 1을 반환하고, 같은 경우 0을 반환합니다.

int a = 5; // 이진수로 101
int b = 3; // 이진수로 011
int result = a ^ b; // 101 XOR 011 = 110 (이진수)
System.out.println(result); // 출력 결과: 6

4.비트 NOT 연산자(~) : 비트를 반전시킵니다. 1의 보수표현으로 0은 1로, 1은 0으로 변환됩니다.

int a = 5; // 이진수로 101
int result = ~a; // NOT 101 = 010 (이진수)
System.out.println(result); // 출력 결과: -6 (2의 보수 표현으로 나타남)

🐱‍🏍 shift (시프트) 연산자

  • bit 단위의 연산을 처리 (이동) 해주는 연산자입니다.
    • << 곱셈
    • >> 나눗셈
public class Main {
    public static void main(String[] args) {
        int number1 = 5;

        System.out.println(number1 << 1); // 5 * 2 = 10
        System.out.println(number1 << 2); // 5 * 2 * 2 = 20
        System.out.println(number1 >> 1); // 5 / 2 = 2
    }
}
  • 사진에서처럼 변수에 대해 2의 제곱값을 곱셈을 하거나 나눗셈을 합니다.

🧲 삼항 연산자

  • 3개의 피연산자를 필요로 하는 연산자 입니다.

코드를 통해 설명하겠습니다.

public class Main {
    public static void main(String[] args) {
        int number1 = 5;
        int number2 = 10;


        System.out.println(number1 < number2 ? 1 : 0); // 1
    }
}

System.out.println(number1 < number2 ? 1 : 0);

  • number2number1 보다 값이 큼으로, :앞에있는 true일때 값을 반환합니다.

if 조건문 대신 삼항 연산자를 사용하게되면 코드가 간결해진다는 장점도 있지만, 가독성이 떨어진다는 문제점이 존재합니다.

  • 디버깅이 불편하며, if 조건문에 비해 속도도 월등히 빠르지도 않아
    if 조건문을 많이 사용하게 됩니다.

👌 대입 연산자

대입 연산자 란?

  • 단어 그대로 변수와 상수에 값을 대입한다는 것입니다.
  • 코드의 가독성이 올라가 대입연산자를 통해 코드를 작성해주는것이 좋습니다.
public class Main {
    public static void main(String[] args) {
        int number1 = 5;
        number1 += 10; // 대입연산자, number1 = number1 + 10;
        number1 %= 5; // number1 = number1 % 5;
     
        System.out.println(number1); // 0
    }
}
  • 번외

String은 불변객체임으로 새롭게 만들어진다.

String name = "";
name += "쿵"; // 가능
name -= "쿵"; // 불가능

0개의 댓글