Java 연산자 마스터하기: 종류, 문법, 실전 예제
Java 연산자
이 튜토리얼에서는 Java의 다양한 연산자 종류, 문법, 예제를 통해 사용법을 배웁니다.
연산자는 변수와 값에 연산을 수행하는 기호입니다. 예를 들어 +는 덧셈 연산자이고 *는 곱셈 연산자입니다.
Java의 연산자는 6가지 유형으로 분류됩니다:
- 산술 연산자
- 대입 연산자
- 관계 연산자
- 논리 연산자
- 단항 연산자
- 비트 연산자
1. Java 산술 연산자
산술 연산자는 변수와 데이터에 산술 연산을 수행하는 데 사용됩니다. 예:
a + b;
여기서 + 연산자는 두 변수 a와 b를 더하는 데 사용됩니다. 마찬가지로 Java에는 다양한 산술 연산자가 있습니다.
| 연산자 | 연산 |
+ | 덧셈 |
- | 뺄셈 |
* | 곱셈 |
/ | 나눗셈 |
% | 모듈로 연산(나눗셈 나머지) |
예제 1: 산술 연산자
class Main {
public static void main(String[] args) {
// 변수 선언
int a = 12, b = 5;
// 덧셈 연산자
System.out.println("a + b = " + (a + b));
// 뺄셈 연산자
System.out.println("a - b = " + (a - b));
// 곱셈 연산자
System.out.println("a * b = " + (a * b));
// 나눗셈 연산자
System.out.println("a / b = " + (a / b));
// 모듈로 연산자
System.out.println("a % b = " + (a % b));
}
}
출력
a + b = 17
a - b = 7
a * b = 60
a / b = 2
a % b = 2
위 예제에서 +, -, * 연산자로 덧셈, 뺄셈, 곱셈을 계산했습니다.
/ 나눗셈 연산자
프로그램의 a / b 연산을 주목하세요. / 연산자는 나눗셈 연산자입니다.
두 정수에 나눗셈 연산자를 사용하면 결과 몫도 정수가 됩니다. 피연산자 중 하나가 부동소수점 수이면 결과도 부동소수점이 됩니다.
Java에서 (9 / 2)는 4
(9.0 / 2)는 4.5
(9 / 2.0)는 4.5
(9.0 / 2.0)는 4.5
% 모듈로 연산자
모듈로 연산자 %는 나머지를 계산합니다. a = 7을 b = 4로 나누면 나머지는 3입니다.
참고: % 연산자는 주로 정수와 함께 사용됩니다.
2. Java 대입 연산자
대입 연산자는 Java에서 변수에 값을 할당하는 데 사용됩니다. 예:
int age;
age = 5;
여기서 =는 대입 연산자입니다. 오른쪽의 값을 왼쪽 변수에 할당합니다. 즉, 5가 변수 age에 할당됩니다.
Java에서 사용 가능한 더 많은 대입 연산자를 살펴봅시다.
| 연산자 | 예제 | 동등한 표현 |
= | a = b; | a = b; |
+= | a += b; | a = a + b; |
-= | a -= b; | a = a - b; |
*= | a *= b; | a = a * b; |
/= | a /= b; | a = a / b; |
%= | a %= b; | a = a % b; |
예제 2: 대입 연산자
class Main {
public static void main(String[] args) {
// 변수 생성
int a = 4;
int var;
// =로 값 할당
var = a;
System.out.println("var using =: " + var);
// +=로 값 할당
var += a;
System.out.println("var using +=: " + var);
// *=로 값 할당
var *= a;
System.out.println("var using *=: " + var);
}
}
출력
var using =: 4
var using +=: 8
var using *=: 32
3. Java 관계 연산자
관계 연산자는 두 피연산자 간의 관계를 확인하는 데 사용됩니다. 예:
// a가 b보다 작은지 확인
a < b;
여기서 < 연산자는 관계 연산자입니다. a가 b보다 작은지 확인합니다.
true 또는 false를 반환합니다.
| 연산자 | 설명 | 예제 |
== | 같음 | 3 == 5는 false 반환 |
!= | 다름 | 3 != 5는 true 반환 |
> | 보다 큼 | 3 > 5는 false 반환 |
< | 보다 작음 | 3 < 5는 true 반환 |
>= | 크거나 같음 | 3 >= 5는 false 반환 |
<= | 작거나 같음 | 3 <= 5는 true 반환 |
예제 3: 관계 연산자
class Main {
public static void main(String[] args) {
// 변수 생성
int a = 7, b = 11;
// a와 b의 값
System.out.println("a is " + a + " and b is " + b);
// == 연산자
System.out.println(a == b); // false
// != 연산자
System.out.println(a != b); // true
// > 연산자
System.out.println(a > b); // false
// < 연산자
System.out.println(a < b); // true
// >= 연산자
System.out.println(a >= b); // false
// <= 연산자
System.out.println(a <= b); // true
}
}
참고: 관계 연산자는 의사 결정과 루프에서 사용됩니다.
4. Java 논리 연산자
논리 연산자는 표현식이 true인지 false인지 확인하는 데 사용됩니다. 의사 결정에 사용됩니다.
| 연산자 | 예제 | 의미 |
&& (논리 AND) | expression1 && expression2 | expression1과 expression2가 모두 true일 때만 true |
|| (논리 OR) | expression1 || expression2 | expression1 또는 expression2 중 하나가 true이면 true |
! (논리 NOT) | !expression | expression이 false면 true, 그 반대도 마찬가지 |
예제 4: 논리 연산자
class Main {
public static void main(String[] args) {
// && 연산자
System.out.println((5 > 3) && (8 > 5)); // true
System.out.println((5 > 3) && (8 < 5)); // false
// || 연산자
System.out.println((5 < 3) || (8 > 5)); // true
System.out.println((5 > 3) || (8 < 5)); // true
System.out.println((5 < 3) || (8 < 5)); // false
// ! 연산자
System.out.println(!(5 == 3)); // true
System.out.println(!(5 > 3)); // false
}
}
프로그램 작동 원리
(5 > 3) && (8 > 5)는 true를 반환합니다. (5 > 3)과 (8 > 5)가 모두 true이기 때문입니다.
(5 > 3) && (8 < 5)는 false를 반환합니다. (8 < 5) 표현식이 false이기 때문입니다.
(5 < 3) || (8 > 5)는 true를 반환합니다. (8 > 5) 표현식이 true이기 때문입니다.
(5 > 3) && (8 > 5)는 true를 반환합니다. (5 > 3) 표현식이 true이기 때문입니다.
(5 > 3) && (8 > 5)는 false를 반환합니다. (5 < 3)과 (8 < 5)가 모두 false이기 때문입니다.
!(5 == 3)은 5 == 3이 false이므로 true를 반환합니다.
!(5 > 3)은 5 > 3이 true이므로 false를 반환합니다.
5. Java 단항 연산자
단항 연산자는 단일 피연산자와 함께 사용됩니다. 예: ++은 변수 값을 1 증가시키는 단항 연산자입니다. 즉, ++5는 6을 반환합니다.
다양한 단항 연산자 유형:
| 연산자 | 의미 |
+ | 단항 플러스: 숫자는 양수이므로 불필요 |
- | 단항 마이너스: 표현식의 부호 반전 |
++ | 증가 연산자: 값을 1 증가 |
-- | 감소 연산자: 값을 1 감소 |
! | 논리 보수 연산자: 불리언 값 반전 |
증가 및 감소 연산자
Java는 증가 및 감소 연산자인 ++과 --를 제공합니다. ++은 피연산자 값을 1 증가시키고 --는 1 감소시킵니다. 예:
int num = 5;
// num을 1 증가
++num;
여기서 num 값은 초기값 5에서 6으로 증가합니다.
예제 5: 증가 및 감소 연산자
class Main {
public static void main(String[] args) {
// 변수 선언
int a = 12, b = 12;
int result1, result2;
// 원래 값
System.out.println("Value of a: " + a);
// 증가 연산자
result1 = ++a;
System.out.println("After increment: " + result1);
System.out.println("Value of b: " + b);
// 감소 연산자
result2 = --b;
System.out.println("After decrement: " + result2);
}
}
출력
Value of a: 12
After increment: 13
Value of b: 12
After decrement: 11
위 프로그램에서 접두사(++a, --b)로 ++와 -- 연산자를 사용했습니다. 접미사(a++, b++)로도 사용할 수 있습니다.
이 연산자들이 접두사로 사용될 때와 접미사로 사용될 때 약간의 차이가 있습니다.
자세한 내용은 증가 및 감소 연산자 방문.
6. Java 비트 연산자
Java의 비트 연산자는 개별 비트에 연산을 수행하는 데 사용됩니다. 예:
35의 비트 보수 연산
35 = 00100011 (이진수)
~ 00100011
________
11011100 = 220 (십진수)
여기서 ~는 비트 연산자입니다. 각 비트 값(0을 1로, 1을 0으로)을 반전시킵니다.
Java에 존재하는 다양한 비트 연산자:
| 연산자 | 설명 |
~ | 비트 보수 |
<< | 왼쪽 시프트 |
>> | 오른쪽 시프트 |
>>> | 부호 없는 오른쪽 시프트 |
& | 비트 AND |
^ | 비트 배타적 OR |
이 연산자들은 Java에서 일반적으로 사용되지 않습니다. 더 알아보려면 Java 비트 및 비트 시프트 연산자 방문.
기타 연산자
이 외에도 Java에는 추가 연산자가 있습니다.
Java instanceof 연산자
instanceof 연산자는 객체가 특정 클래스의 인스턴스인지 확인합니다. 예:
class Main {
public static void main(String[] args) {
String str = "Programiz";
boolean result;
// str이 String 클래스의 인스턴스인지 확인
result = str instanceof String;
System.out.println("Is str an object of String? " + result);
}
}
출력
Is str an object of String? true
여기서 str은 String 클래스의 인스턴스입니다. 따라서 instanceof 연산자는 true를 반환합니다. 더 알아보려면 Java instanceof 방문.
Java 삼항 연산자
삼항 연산자(조건 연산자)는 if-then-else 문의 축약형입니다. 예:
variable = Expression ? expression1 : expression2
작동 방식:
Expression이 true이면 expression1이 variable에 할당됩니다.
Expression이 false이면 expression2가 variable에 할당됩니다.
삼항 연산자 예제:
class Java {
public static void main(String[] args) {
int februaryDays = 29;
String result;
// 삼항 연산자
result = (februaryDays == 28) ? "Not a leap year" : "Leap year";
System.out.println(result);
}
}
출력
Leap year
위 예제에서 삼항 연산자로 윤년 여부를 확인했습니다. 더 알아보려면 Java 삼항 연산자 방문.
이제 Java 연산자에 대해 알았으니 연산자가 평가되는 순서를 알아볼 차례. 더 알아보려면 Java 연산자 우선순위 방문.