🔖 INDEX
연산자(Operators)는 프로그래밍에서 특정한 연산을 수행하는 기호입니다. 연산자는 피연산자(Operand)를 필요로 하며, 피연산자는 연산의 대상이 되는 값입니다.
자바에서는 다양한 연산자를 제공하며, 각 연산자는 피연산자를 조합하여 새로운 값을 만드는 역할을 합니다. 이러한 연산자들을 사용하여 프로그램에서 수학적인 계산부터 비교, 논리, 비트 연산 등 다양한 계산을 수행할 수 있습니다.
연산자는 프로그래밍에서 가장 기본적인 개념 중 하나이며, 자바를 비롯한 대부분의 프로그래밍 언어에서 기본적으로 제공합니다. 연산자의 종류와 기능을 잘 이해하고 사용하는 것은 프로그래밍에서 필수적인 요소입니다.
자바에서는 다양한 연산자를 제공합니다. 각 연산자는 다음과 같은 종류로 구분됩니다.
- 산술 연산자 (Arithmetic Operators)
- 비교 연산자 (Relational Operators)
- 논리 연산자 (Logical Operators)
2023.05.01 - [JAVA] - 초보 자바 프로그래밍(11) - 논리연산자 (Logical Operators)
- 비트 연산자 (Bitwise Operators)
2023.05.01 - [JAVA] - 초보 자바 프로그래밍(12) - 비트연산자 (Bitwise Operators)
- 대입 연산자 (Assignment Operators)
2023.05.01 - [JAVA] - 초보 자바 프로그래밍(13) - 대입연산자 (Assignment Operators)
- 조건 연산자 (Conditional Operators)
2023.05.01 - [JAVA] - 초보 자바 프로그래밍(14) - 조건연산자 (Conditional Operators)
산술 연산자 (Arithmetic Operators)
산술 연산자는 덧셈, 뺄셈, 곱셈, 나눗셈 및 나머지 연산을 수행하는 연산자입니다. 자바에서는 다음과 같은 산술 연산자를 제공합니다.
- 덧셈 연산자 (+)
- 뺄셈 연산자 (-)
- 곱셈 연산자 (*)
- 나눗셈 연산자 (/)
- 나머지 연산자 (%)
덧셈, 뺄셈, 곱셈 연산자는 이름 그대로 덧셈, 뺄셈, 곱셈 연산을 수행합니다. 예를 들어, 다음과 같은 코드를 작성하여 덧셈 연산을 수행할 수 있습니다.
int a = 10;
int b = 20;
int result = a + b;
System.out.println(result); //30 출력
나눗셈 연산자는 피연산자를 나눈 결과를 반환합니다. 나눗셈 연산자(/)는 정수형 데이터 타입에 대한 나눗셈 연산을 수행할 때, 소수점 이하의 값을 버리고 몫만을 반환합니다. 예를 들어, 다음과 같은 코드를 작성하여 나눗셈 연산을 수행할 수 있습니다.
int a = 10;
int b = 3;
int result = a / b;
System.out.println(result); //3 출력
나머지 연산자(%)는 피연산자를 나눈 후, 나머지 값을 반환합니다. 예를 들어, 다음과 같은 코드를 작성하여 나머지 연산을 수행할 수 있습니다.
int a = 10;
int b = 3;
int result = a % b;
System.out.println(result); //1 출력
산술연산자의 우선순위는 곱셈(*)/나눗셈(/) > 덧셈(+) /뺄셈(-) 입니다. 수학에서 나오는 우선순위와 동일합니다.
또한, 산술 연산자들은 서로 다른 데이터 타입 간의 연산을 수행할 때 자동으로 형변환을 수행합니다. 그러나, 형변환의 결과가 예상치 못한 값이 나올 수 있으므로, 피연산자의 데이터 타입이 일치하도록 명시적으로 형변환하여 정확한 결과를 얻을 수 있도록 해야 합니다.
비교 연산자 (Relational Operators)
비교 연산자는 피연산자들 사이의 관계를 비교하여 논리값(true/false)을 반환하는 연산자입니다. 자바에서는 다음과 같은 비교 연산자를 제공합니다.
- 같음 비교 연산자 (==)
- 같지 않음 비교 연산자 (!=)
- 작음 비교 연산자 (<)
- 큼 비교 연산자 (>)
- 작거나 같음 비교 연산자 (<=)
- 크거나 같음 비교 연산자 (>=)
같음 비교 연산자(==)는 두 피연산자가 같으면 true를 반환합니다. 다음 예제를 참고하세요.
int a = 10;
int b = 10;
boolean result = (a == b); // true
같지 않음 비교 연산자(!=)는 두 피연산자가 같지 않으면 true를 반환합니다. 다음 예제를 참고하세요.
int a = 10;
int b = 20;
boolean result = (a != b); // true
작음 비교 연산자(<)는 첫 번째 피연산자가 두 번째 피연산자보다 작으면 true를 반환합니다. 다음 예제를 참고하세요.
int a = 10;
int b = 20;
boolean result = (a < b); // true
큼 비교 연산자(>)는 첫 번째 피연산자가 두 번째 피연산자보다 크면 true를 반환합니다. 다음 예제를 참고하세요.
int a = 10;
int b = 20;
boolean result = (a > b); // false
작거나 같음 비교 연산자(<=)는 첫 번째 피연산자가 두 번째 피연산자보다 작거나 같으면 true를 반환합니다. 다음 예제를 참고하세요.
int a = 10;
int b = 20;
boolean result = (a <= b); // true
크거나 같음 비교 연산자(>=)는 첫 번째 피연산자가 두 번째 피연산자보다 크거나 같으면 true를 반환합니다. 다음 예제를 참고하세요.
int a = 10;
int b = 20;
boolean result = (a >= b); // false
비교 연산자를 사용하여 조건문(if문, while문 등)을 구성할 수 있습니다. 예를 들어, 다음과 같은 코드를 작성하여 두 값을 비교하고 결과를 출력할 수 있습니다.
int a = 10;
int b = 20;
if (a < b) {
System.out.println("a는 b보다 작습니다.");
} else {
System.out.println("a는 b보다 크거나 같습니다.");
}
비교 연산자 사용 시 주의 사항
비교 연산자를 사용할 때에는 주의해야 할 점이 있습니다. 이는 자바를 비롯한 대부분의 프로그래밍 언어에서 동일합니다. 주의해야 할 점은 다음과 같습니다.
문자열 비교 시 주의
문자열을 비교할 때는 같음 비교 연산자(==)를 사용하면 안 됩니다. 대신에, equals() 메소드를 사용해야 합니다. 이는 문자열이 가지고 있는 값 자체를 비교하는 것이 아니라, 문자열의 내용이 동일한지 비교합니다. 예를 들어, 다음 코드를 참고하세요.
String str1 = "Hello";
String str2 = "Hello";
if (str1 == str2) {
System.out.println("str1과 str2는 같습니다.");
} else {
System.out.println("str1과 str2는 다릅니다.");
}
위 코드는 "str1과 str2는 같습니다."를 출력합니다. 그러나, 다음 코드를 참고하세요.
String str1 = "Hello";
String str2 = new String("Hello");
if (str1 == str2) {
System.out.println("str1과 str2는 같습니다.");
} else {
System.out.println("str1과 str2는 다릅니다.");
}
위 코드는 "str1과 str2는 다릅니다."를 출력합니다. 이는 new 연산자를 사용하여 생성된 새로운 객체의 주소값이 다르기 때문입니다. 따라서, 문자열 비교 시에는 equals() 메소드를 사용하여 비교해야 합니다.
부동 소수점 비교 시 주의
부동 소수점 타입인 float, double의 경우, 정확한 값을 비교하는 것은 어렵습니다. 이는 컴퓨터가 실수를 이진수로 표현하는 방식 때문입니다. 예를 들어, 다음 코드를 참고하세요.
double a = 0.1;
double b = 0.2;
if (a + b == 0.3) {
System.out.println("a+b와 0.3은 같습니다.");
} else {
System.out.println("a+b와 0.3은 다릅니다.");
}
위 코드는 "a+b와 0.3은 다릅니다."를 출력합니다. 이는 0.1과 0.2가 이진수로 정확하게 표현되지 않기 때문입니다. 이러한 문제를 해결하기 위해서는 정확한 값을 비교하는 대신, 일정 범위 내의 오차를 허용하는 방식으로 비교해야 합니다. 예를 들어, 다음 코드를 참고하세요.
double a = 0.1;
double b = 0.2;
if (Math.abs(a + b - 0.3) < 0.0001) {
System.out.println("a+b와 0.3은 같습니다.");
} else {
System.out.println("a+b와 0.3은 다릅니다.");
}
'프로그래밍 > JAVA' 카테고리의 다른 글
초보 자바 프로그래밍(12) - 비트연산자 (Bitwise Operators) (0) | 2023.05.01 |
---|---|
초보 자바 프로그래밍(11) - 논리연산자 (Logical Operators) (0) | 2023.05.01 |
초보 자바 프로그래밍(9) - 반복문 for-each (0) | 2023.05.01 |
초보 자바 프로그래밍(8) - 반복문 for (0) | 2023.05.01 |
초보 자바 프로그래밍(7) - 반복문 do-while (0) | 2023.05.01 |
댓글