이항 연산자는 피연산자가 2개인 연산자를 말합니다. 여기에는 산술 연산자, 문자열 결합 연산자, 비교 연산자, 논리 연산자, 대입 연산자 등이 있습니다. 제가 웹 개발자로 일할때 논리 연산자의 개념을 잘 이해 못해서 고전한 기억이 납니다. 저와 함께 산술 연산자, 문자열 결합 연산자, 비교 연산자, 논리 연산자, 대입 연산자를 저와 함께 알아보도록 하겠습니다.
산술 연산자는 수학시간에 배워서 잘 알것입니다. 덧셈(+), 뺄셈(-), 곱셈(*), 나눗셈(/), 나머지(%)이렇게 총 5가지의 산술 연산자가 있습니다. 산술 연산자는 boolean 타입을 제외한 모든 기본 타입에 사용할 수 있습니다.
위의 산술 연산자 중에서 주목해야 할것은 %연산자 입니다. %연산자는 나눗셈을 수행한 후 몫이 아닌 나머지를 돌려주는 연산자입니다. 소스 코드로 살펴보겠습니다.
6번째 줄을 보면 int result = num / 3; 을 보면, num 변수에 저장되어 있는 10의 값을 3으로 나눈 나머지 3이 출력되는 것을 알 수 있습니다. 산술 연산자를 좀더 알아보도록 하겠습니다. 저 역시 이 개념을 모르고 코딩을 했다고 고생한 적이 있습니다. 산술 연산자의 특징은 피연산자들의 타입이 동일하지 않을 경우 규칙이 적용되는데 다음과 같습니다.
1. 피연산자들이 byte, short, char 타입일 경우 모두 int 타입으로 변환된 후 연산됩니다.
2. 피연산자들이 모두 정수 타입이고 long타입이 포함되어 있을 경우, 모두 long 타입으로 변환된 후 연산을 수행합니다.
3. 피연산자 중 실수 타입(float, double)이 있을 경우, 허용 범위가 큰 실수 타입으로 변환된 후 연산을 수행합니다.
또 알아야 할것이 있습니다. char 타입도 정수 타입이므로 산술 연산이 가능한데, 중요한 것은 int 타입으로 변환되므로 연산 결과는 int타입이 됩니다. 이 부분을 소스 코드로 살펴 보겠습니다.
6번째 줄에서 int value = c1 + 10; 에서 c1은 char 타입인데, 피연산자로 사용될 경우 int 타입으로 변환이 되므로 이 결과값을 받을 변수 value는 int 타입으로 선언해야 합니다. 결과 값은 75가 출력이 되는 것을 알 수 있습니다. 즉, c1은 유니코드 값으로 65이고 여기에 10을 더한 결과 값이 75인 것입니다.
문자열 결합 연산자인 +는 문자열을 서로 결합하는 연산자입니다. + 연산자는 산술 연산자, 부호 연산자인 동시에 문자열 결합 연산자이기도 합니다. 피연산자 중 한쪽이 문자열이면 + 연산자는 문자열 결합 연산자로 사용되어 다른 피연산자를 문자열로 변환하고 서로 결합니다. 저와 함께 소스 코드로 알아보겠습니다.
8번째 줄에서 String str2 = str1 + value; 에서 str1 변수는 문자열 타입인 String 이고 value는 정수 타입인 int 입니다. 문자열이 피연산자로 사용되었으므로 정수 타입 value는 문자열로 변환이 됩니다. 그래서 + 문자열 결합 연산자에 의해 str1과 결합됩니다. 결과값은 따뜻한센드10이 나온 것을 확인 할 수 있습니다. 이해 되셨을 것입니다. 이것으로 JAVA 단항 연산자 이항 연산자 삼항 연산자 알아보기 3편을 마치겠습니다. 긴 글 읽어주셔서 감사합니다.
JAVA 단항 연산자 이항 연산자 삼항 연산자 알아보기 5편(완결) (0) | 2020.07.05 |
---|---|
JAVA 단항 연산자 이항 연산자 삼항 연산자 알아보기 4편 (0) | 2020.07.05 |
JAVA 단항 연산자 이항 연산자 삼항 연산자 알아보기 2편 (0) | 2020.07.03 |
JAVA 단항 연산자 이항 연산자 삼항 연산자 알아보기 1편 (1) | 2020.07.02 |
JAVA 시스템 입출력 System.out System.in Scanner 알아보기 3편(완결) (0) | 2020.06.30 |