자바 연산자
자바 프로그래밍에서 연산자는 두 개 이상의 값을 조작하거나 비교하여 결과를 도출하는 데 사용되는 필수적인 요소입니다.
1. 자바 연산자 기본 개념
1.1 연산자의 종류:
- 산술 연산자: 덧셈, 뺄셈, 곱셈, 나눗셈, 나머지 연산 등
- 비교 연산자: 크기 비교, 같음/다름 비교 등
- 논리 연산자: AND, OR, NOT 등
- 조건부 연산자: 조건에 따라 다른 값을 선택하는 연산자 (?:)
- 대입 연산자: 변수에 값을 할당하는 연산자 (=, +=, -=, *=, /= 등)
- 증감 연산자: 변수 값을 증가시키거나 감소시키는 연산자 (++/--)
- 비트 연산자: 비트 수준에서 연산을 수행하는 연산자 (AND, OR, XOR, NOT, <<, >> 등)
- 문자열 연산자: 문자열을 조작하는 연산자 (+)
- 참조 연산자: 객체 참조를 다루는 연산자 (&, |)
- 인스턴스 생성 연산자: new 키워드를 사용하여 객체를 생성하는 연산자
1.2 연산자 우선순위:
- 연산자는 우선순위에 따라 순서대로 수행됩니다.
- 괄호 안의 연산자가 먼저 수행되고, 곱셈/나눗셈 연산자가 덧셈/뺄셈 연산자보다 먼저 수행됩니다.
- 동일한 우선순위를 가진 연산자는 왼쪽에서 오른쪽 순으로 수행됩니다.
1.3 연산자 오버로딩:
- 동일한 이름의 연산자를 다양한 데이터 타입에 대해 다르게 정의하는 기능입니다.
- 코드 재사용성을 높이고 유연성을 향상시키는 데 도움이 됩니다.
2. 자바 연산자 심층 활용
2.1 산술 연산자:
- 기본 연산: +,-,*,/,%
- 자동 형변환: 연산 피연산자의 데이터 타입에 따라 자동 형변환이 발생할 수 있습니다.
- 정수 연산:
- int + int: int
- long + long: long
- int + long: long
- 실수 연산: 모든 실수 연산은 double 타입으로 결과를 반환합니다.
- 나머지 연산: 나눗셈의 나머지 값을 반환합니다.
- 연산자 우선순위: 곱셈/나눗셈 > 덧셈/뺄셈
2.2 비교 연산자:
- 크기 비교: >, <, >=, <=
- 같음/다름 비교: ==, !=
- 논리적 비교 연산자와의 차이: 비교 연산자는 두 값을 직접 비교하는 반면, 논리적 비교 연산자는 논리값을 비교합니다.
2.3 논리 연산자:
- AND 연산자 (&&): 두 조건 모두 참일 때 true를 반환합니다.
- OR 연산자 (||): 두 조건 중 하나라도 참일 때 true를 반환합니다.
- NOT 연산자 (!): 논리값을 반전합니다.
- 연산자 우선순위: NOT > AND/OR
2.4 조건부 연산자 (?:):
- 조건에 따라 다른 값을 선택하는 연산자입니다.
- 삼항 연산자라고도 불립니다
3. 논리 연산자 예시
3 - 3 NOT 연산자:
boolean isWeekend = false; boolean isNotWeekend = !isWeekend; System.out.println("주말 여부: " + isWeekend); // false System.out.println("주말이 아닌지 여부: " + isNotWeekend); // true
3 - 4 연산자 우선순위:
boolean condition1 = (num1 > 15) && (num2 < 30); boolean condition2 = num1 + num2 > 50; System.out.println(condition1 || condition2); // true (&& 연산자 > || 연산자)
4. 조건부 연산자 (?:) 예시
4 - 1 간단한 예시:
int score = 85; String grade = (score >= 90) ? "A" : (score >= 80) ? "B" : (score >= 70) ? "C" : "F"; System.out.println("학점: " + grade); // B
4 - 2 여러 조건 처리:
int day = 3; String dayName; switch (day) { case 1: dayName = "월요일"; break; case 2: dayName = "화요일"; break; case 3: dayName = "수요일"; break; case 4: dayName = "목요일"; break; case 5: dayName = "금요일"; break; case 6: dayName = "토요일"; break; case 7: dayName = "일요일"; break; default: dayName = "잘못된 요일입니다."; } System.out.println("오늘은 " + dayName + "입니다."); // 수요일
5. 증감 연산자 (++) 예시
5 - 1 변수 값 증가:
int num = 10; System.out.println(num); // 10 num++; System.out.println(num); // 11 num += 5; System.out.println(num); // 16
5 - 2 for 문에서 활용:
for (int i = 1; i <= 10; i++) { System.out.print(i + " "); }
5 - 3 후위 증감 연산자:
int num = 10; int result1 = num++; // num 값을 먼저 result1에 할당하고 1 증가 int result2 = ++num; // 1 증가 후 num 값을 result2에 할당 System.out.println("result1: " + result1); // 10 System.out.println("result2: " + result2); // 11 System.out.println("num: " + num); // 11
6. 비트 연산자 예시
6 - 1 AND 연산자 (&):
int num1 = 10; // 00001010 int num2 = 5; // 00000101 int result = num1 & num2; // 00000000 System.out.println(result); // 0
6 - 2 OR 연산자 (|):
int num1 = 10; // 00001010 int num2 = 5; // 00000101 int result = num1 | num2; // 00001111 System.out.println(result); // 15
6 - 3 XOR 연산자 (^):
int num1 = 10; // 00001010 int num2 = 5; // 00000101 int result = num1 ^ num2; // 00001111
-
1. 산술 연산자 예시
1 - 1 기본 연산:
int num1 = 10; int num2 = 20; System.out.println(num1 + num2); // 30 System.out.println(num1 - num2); // -10 System.out.println(num1 * num2); // 200 System.out.println(num1 / num2); // 0.5 System.out.println(num1 % num2); // 10
1 - 2 자동 형변환:
int num1 = 10; long num2 = 20L; System.out.println(num1 + num2); // 30 (int + long -> long) System.out.println(num1 * 1.5); // 15.0 (int * double -> double)
1 - 3 정수 연산:
int num1 = 10; int num2 = 2000000000; System.out.println(num1 + num2); // 2000000010 (int + int -> int) System.out.println(num1 + (long)num2); // 2000000020 (int + long -> long)
1 - 4 실수 연산:
double num1 = 3.14; double num2 = 2.718; System.out.println(num1 + num2); // 5.858 System.out.println(num1 * num2); // 8.53278
1 - 5 나머지 연산:
int num1 = 17; int num2 = 5; System.out.println(num1 % num2); // 2
1 - 6 연산자 우선순위:
int num1 = 10 * 20; int num2 = 100 + 50 / 2; System.out.println(num1 + num2); // 300 (곱셈/나눗셈 > 덧셈/뺄셈)
2. 비교 연산자 예시
2 - 1 크기 비교:
int num1 = 10; int num2 = 20; System.out.println(num1 > num2); // false System.out.println(num1 < num2); // true System.out.println(num1 >= num2); // false System.out.println(num1 <= num2); // true
2 - 2 같음/다름 비교:
String str1 = "Hello"; String str2 = "Hello"; String str3 = new String("Hello"); System.out.println(str1 == str2); // true System.out.println(str1 == str3); // false System.out.println(str1.equals(str3)); // true
2 - 3 논리적 비교 연산자와의 차이:
int num1 = 10; int num2 = 20; System.out.println((num1 > 15) && (num2 < 30)); // true (두 조건 모두 참) System.out.println((num1 > 15) || (num2 < 30)); // true (두 조건 중 하나라도 참) boolean condition1 = num1 > 15; boolean condition2 = num2 < 30; System.out.println(condition1 && condition2); // true (두 조건 모두 참) System.out.println(condition1 || condition2); // true (두 조건 중 하나라도 참)
'JAVA' 카테고리의 다른 글
JAVA 반복문 While 문 (0) | 2024.05.26 |
---|---|
JAVA 반복문 for 문 (0) | 2024.05.26 |
JAVA Import (0) | 2024.05.26 |
JAVA 스캐너 (Scanner) (0) | 2024.05.26 |
JAVA 이스케이프 문자 (Esacape) (0) | 2024.05.26 |