- 데이터를 처리하여 결과를 반환하는것을 연산이라고 합니다.
- 그러한 연산에 필요한 표시나 기호를 "연산자" 라고 합니다.
산술 연산자
증감 연산자
비교 연산자
등.....
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의 보수 표현으로 나타남)
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의 제곱값을 곱셈을 하거나 나눗셈을 합니다.
코드를 통해 설명하겠습니다.
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);
number2가number1보다 값이 큼으로,:앞에있는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 -= "쿵"; // 불가능