티스토리 뷰
안녕하십니까?
이번에는 단항 연산자에 대해 알아보겠습니다.
저번 2편으로 이항 연산자에 대한 설명을 끝냈습니다.
이제 단항 연산자와 비트 연산자 이 두 가지가 남았는데요.
이 부분은 이항 연산자보단 쉽다고 느끼실거예요.
참고로 단항 연산자란 피 연산자가 1개인 연산자입니다. 저번에 논리 연산자 배우면서 !에 대해 배우며 언급을 했죠?
그럼 부호 연산자로 사용되는 +와 -를 배워보도록 하겠습니다.
저번시간에 +와-는 이항 연산자로 덧셈과 뺄셈을 하는 역할을 한다고 배웠습니다.
그런대 이 두 연산자는 부호 연산자로도 쓰입니다.
부호 연산이라는 단어가 약간 이해가 안될 수도 있는데,
-(-6), -(+9)
이 두 정수를 수학적으로 계산해 보도록 하겠습니다.
-에 -가 오면 +가 되어 +6이 되고
+에 -가 오면 -가 되어 -9가 된다는 건 너무 나도 뻔하고 쉬운 소리입니다 (만약 이해가 안되시면 중학교 1학년을 마치시면 이해가 되실겁니다.)
부호 연산자는 이 의미와 동일합니다.
그러므로 단항 연산자 -는 부호를 바꿔주는 역할을 합니다.
그러면 +는 무슨 역할을 할까요? 저도 딱히 하는 일은 없다고 생각합니다.
그냥 음수가 아니다는 것을 강조하기 위해 생긴건가요?
그럼 +는 무시되거나 연산이 안되는 주석 같은 연산자는 아닐까요?
short m1=6;
short m2=+m1;
위 코드를 컴파일 하면 에러가 발생합니다.
모든 정수는 java에 의해 int형으로 형 변환이 이루어 진다고 했습니다.
그러므로 +가 연산자로 기능을 하게 된다면 +6을 계산하기 위해 int형으로의 변환이 필요한 겁니다.
그런대 여기서 int형을 short에 저장할 수 없으므로 컴파일 오류가 발생하는 것 입니다.
(short)로 명시적 형 변환을 해줘야 에러가 발생하지 않는 것 이지요.
이처럼 +연산자도 주석 같은 연산자가 아닌 실제로 연산을 하는 연산자라는 사실을 확인해 봤습니다. 하는일은 없는 것 같지만요. ㅋㅋㅋㅋㅋㅋ
그럼 이번에는 값을 더하고, 빼는 연산자를 알아보도록 하겠습니다.
그냥 단도직입적으로 말하자면 ++와 --가 연산자의 기호입니다.
"뭔 +를 두번쓰고 -를 두번쓰는게 연산자예요 ㅋㅋㅋㅋㅋㅋㅋ"
라고 하시면 안됩니다.
이 연산자는 피 연산자의 앞과 뒤에 올 수 있습니다.
++number1
number++
이렇게 말이죠.
그런대 이 두 가지의 뜻은 완전 다릅니다.
먼저 피 연산자 앞에 있는 ++를 prefix연산자라 합니다. 접두사 연산자라고 번역해야 하나요?
그러면 뒤에 오는 연산자는 뭐라 할까요?
postfix연산자라 쓰고 접미사 연산자라 읽습니다.
prefix연산자는 피 연산자 앞에 오는데요.
기능은 피 연산자의 값을 1 증가(감소)시킵니다
또한 postfix연산자도 피 연산자의 값을 1 증가(감소)시킵니다
그런대 postfix는 그 행이 끝난 다음 값이 적용이 됩니다.
int number1=10, number2, number3;
number2=--number1
number3=number1--
이런 구문이 있다고 합니다.
처음에 number1,2,3를 선언하고 number1은 선언과 동시에 초기화를 하고 있습니다.
두 번째 행에서는 number1의 수를 1감소 시킵니다 그러므로 10-1=9가 number2에 들어가게 됩니다.
마지막에서 number1의 수를 1감소 시키라고 합니다. 그런데 postfix연산자는 그 다음 행에서 값을 적용하므로 number3에도 9가 들어가게 됩니다.
만약 마지막에 또 다른 행이 있다고 한다면 그 행부터 number1의 값은 8이 되겠죠?
정리하자면,
prefix연산자는 : 연산자 앞에 위치하며 피 연산자의 값을 1 증가(감소)시킨다.
postfix연산자는: 연산자 뒤에 위치하며 피 연산자의 값을 1 증가(감소)시킨다. 단, 증가(감소)가 일어난 행에서는 이전 값으로 인식하고 다음 행에서부터 증가(감소)된 값으로 인식한다.
헷갈릴 수 있습니다. 잘 정리해 두세요.
이렇게 해서 단항 연산자에 대한 설명을 마치겠습니다.
다음 한 강좌로 비트 연산자를 끝낼 수 있을 듯 하네요.
그리고 연산자도 마치게 되는.. ㅎㅎㅎㅎㅎㅎㅎㅎㅎ
연산자가 끝나면 그때부터 저랑 진도가 비슷해 지는군요. ㅋㅋ
다음 강좌로 비트 연산자 끝내고 그 다음 강좌에서는 프로그래밍의 하이라이트라고 할 수 있는 if~else에 대해 알아볼겁니다.
'Programming > Java' 카테고리의 다른 글
반복문을 끝내볼까? while, for, do~while (0) | 2013.03.01 |
---|---|
Switch와 break는 어떻게 사용할 수 있을까? (0) | 2013.03.01 |
if~else, 만약 ~이라면 ~을 실행하라 (2) | 2013.02.27 |
비트 연산자, 연산자의 끝을 달려가보자 (0) | 2013.02.23 |
계산을 할수 있는 연산자에 대해 알아보자! - 2편 (0) | 2013.02.22 |
계산을 할 수 있는 연산자에 대해 알아보자! - 1편 (0) | 2013.02.22 |
자료형은 언제든지 변환될 수 있습니다 (0) | 2013.02.22 |
자료형을 기반으로 메모리 공간에 저장되는 상수! (2) | 2013.02.20 |
- Total
- Today
- Yesterday
- String Name = Miru(itmir913);
- String Mail = itmir913@gmail.com;
- String github = https://github.com/itmir913;