728x90
반응형
🔸연산자
연산자(Operator)는 프로그램에서 데이터를 처리할 때 사용하는 기호로, 연산을 수행하는 역할을 합니다.
Java에서 제공하는 연산자는 크게 산술 연산자, 관계 연산자, 논리 연산자, 비트 연산자, 대입 연산자, 조건부 연산자, 시프트 연산자 등이 있습니다.
연산자는 우선순위를 가지며, 특정 연산자가 다른 연산자보다 먼저 실행됩니다. 올바른 결과를 얻기 위해 연산자의 우선순위를 이해하는 것이 중요합니다.
1️⃣ 괄호 연산자 ()
int result = (2 + 3) * 4; // 5 * 4 = 20
- 괄호 안의 연산이 먼저 수행
- 가장 높은 우선순위
2️⃣ 단항 연산자
- 피연산자가 하나인 연산자
- 단항 증가/감소 연산자: ++, -- (전위/후위)
- 논리 부정 연산자: !
- 비트 부정 연산자: ~
- 우선순위: 2번째
🔎 증가/감소 연산자
int x = 5;
int y = ++x; // x를 먼저 증가 후 대입 (x=6, y=6)
int a = 5;
int b = a--; // b에 a 값(5) 대입 후 a 감소 (a=4, b=5)
- ++ : 1 증가 (a++, ++a)
- -- : 1 감소 (a--, --a)
- 전위(prefix)와 후위(postfix) 연산이 존재
🔎 논리 부정
bool flag = true;
bool result = !flag; // false
- ! : 논리 부정 (true → false, false → true)
🔎 비트 부정 연산자
int num = 5; // 00000101 (2진수)
int result = ~num; // 11111010 (2진수) → -6 (10진수)
- ~ : 비트 반전 (0 → 1, 1 → 0)
- 2의 보수를 활용한 연산에서 사용됨
3️⃣ 산술 연산자
int sum = 10 + 5; // 15
int sub = 10 - 5; // 5
int mul = 10 * 5; // 50
int div = 10 / 5; // 2
int mod = 10 % 3; // 1
- 기본적인 사칙연산 및 나머지 연산
- * : 곱하기
- / : 나누기
- % : 나머지
- + : 덧셈
- - : 뺄셈
- 우선순위: 3번째 (*, /, % 가 +, - 보다 우선순위 높음)
4️⃣ 시프트 연산자
int num = 4; // 00000100 (2진수)
int leftShift = num << 1; // 00001000 (8)
int rightShift = num >> 1; // 00000010 (2)
- 비트를 왼쪽 또는 오른쪽으로 이동하는 연산자
- << : 왼쪽 시프트 (비트를 왼쪽으로 이동 → 값이 2배 증가)
- >> : 오른쪽 시프트 (비트를 오른쪽으로 이동 → 값이 1/2 감소=>2로 나누는 효과 )
- 우선순위: 4번째
반응형
5️⃣ 관계 연산자
int a = 5, b = 10;
boolean result1 = a < b; // true
boolean result2 = a > b; // false
boolean result3 = a <= b; // true
boolean result4 = a >= b; // false
boolean result5 = a == b; // false
boolean result6 = a != b; // true
- 두 값을 비교하여 참(true) 또는 거짓(false)을 반환하는 연산자
- < : 작다
- > : 크다
- <= : 작거나 같다
- >= : 크거나 같다
- == : 같다
- != : 다르다
- 우선순위: 5번째 (<, >, <=, >= 가 ==, != 보다 우선순위 높음)
6️⃣ 비트 연산자
int a = 5; // 00000101
int b = 3; // 00000011
int andOp = a & b; // 00000001 (1)
int orOp = a | b; // 00000111 (7)
int xorOp = a ^ b; // 00000110 (6)
728x90
- 비트 단위로 논리 연산( AND, OR, XOR )을 수행하는 연산자
- & : 비트 AND
- | : 비트 OR
- ^ : 비트 XOR (서로 다른 경우 1)
- 우선순위: 6번째
7️⃣ 논리 연산자
boolean a = true, b = false;
System.out.println(a && b); // false
System.out.println(a || b); // true
- 논리 연산을 수행하는 연산자
- && : 논리 AND (모두 참이면 true)
- || : 논리 OR (하나라도 참이면 true)
- 우선순위: 7번째 (&& 가 || 보다 우선순위 높음)
8️⃣ 조건부 연산자 ( 삼항 연산자 ? : )
int num = 10;
int result = (num > 5) ? 100 : 200; // result = 100
String message = (num % 2 == 0) ? "짝수" : "홀수"; // "짝수"
- 삼항 연산자로 조건에 따라 다른 값을 반환
- 조건식 ? 참값 : 거짓값
- 우선순위: 8번째
9️⃣ 대입 연산자
int a = 10; // = 대입 (a에 10 저장)
a += 5; // += 더한 후 대입 (a = 10 + 5 → 15)
a -= 3; // -= 뺀 후 대입 (a = 15 - 3 → 12)
a *= 2; // *= 곱한 후 대입 (a = 12 * 2 → 24)
a /= 4; // /= 나눈 후 대입 (a = 24 / 4 → 6)
a %= 5; // %= 나머지 대입 (a = 6 % 5 → 1)
- 변수에 값을 할당하는 연산자
- = : 대입
- += : 더한 후 대입
- -= : 뺀 후 대입
- *= : 곱한 후 대입
- /= : 나눈 후 대입
- %= : 나머지를 대입
- 우선순위: 9번째
🔟 순서 연산자 ,
int a = 5, b = 10, c = 15; // 여러 변수 선언 및 초기화
- 여러 개의 표현식을 순서대로 실행할 때 사용
- 우선순위: 10번째 (가장 낮음)
"이 포스팅은 쿠팡 파트너스 활동의 일환으로, 이에 따른 일정액의 수수료를 제공받습니다."
728x90
반응형
'코딩일기 > 자격증' 카테고리의 다른 글
[정보처리기사] RAID(Redundant Array of Independent Disks) : 2022년도 기출문제 (0) | 2024.07.17 |
---|---|
[정보처리기사] 정수를 역순으로 출력하는 C언어 프로그램 : 2022년도 기출문제 (0) | 2024.07.16 |
[정보처리기사] 나선형 모델(Spiral Model, 점진적 모형) (0) | 2024.07.15 |
정보처리기사 소프트웨어 개발 : 디지털 저작권 관리(DRM) 의 구성요소와 기술 요소 (0) | 2024.07.11 |
정보처리기사 소프트웨어 개발 : 객체지향(Object-Oriented)의 구성요소와 특징(객체 / 클래스)(캡슐화 / 상속 / 다형성 / 연관성 / 정보은닉 / 추상화) (0) | 2024.07.10 |