안녕하세요? 프로그래밍 언어 공부하고있는 MarShall™ 입니다.
이번에는 증가 연산자 중 전치, 후치 요 두놈에 대해 포스팅할려구 합니다.
저도 아직 초보 딱지를 떼지 못한 상태이다보니, 배워가면서 포스팅해볼까합니다.
전치, 후치는 별거 없습니다. 말 그대로 연산자 기호 ++ 나 -- 가 앞에 있으면 전치(前値), 뒤에 있으면 후치(後値)가 되는 것입니다. 막상 a++ 이나 ++a 둘 다 써도 "a 값에 1씩 더한다"는 기본 개념 또한 완전 똑같습니다. (반대의 경우도 마찬가지입니다.)
다만, 증가(++) 및 감소(--)의 시점에 따라 연산을 수행하는 방식이 다를 뿐입니다.
"전치"의 경우는 변수를 참조하기 전에 제일 먼저 연산을 수행합니다. 쉽게 생각해서 일반적으로 흔히 쉽게 생각하실 수 있는 방식입니다. 즉, a 값이 1인 상태에서 a++을 실행시키면, 곧 바로 a값에 1증가가 된 결과값인 2가 출력되어 나옵니다.
하지만 "후치"는 변수를 참조한 이후에 연산을 수행합니다.
즉, 일단 b 값을 먼저 대입(출력) 한 뒤, 메모리 상에서 미리 1값을 증가시켜서 b 값에 대입합니다. 그러므로, 연산자를 b++로 하셨으면, 먼저 기존 b 값이 출력됩니다. 그 뒤에야 비로소 그 값에 1을 증가시키는 방식인거죠.
제가 글을 적어보고도 쉽게 쓰기가 어렵네요.
이럴땐 직접 프로그래밍하셔서 실행해보시는게 가장 빠릅니다.
윈도8 컨슈머 프리뷰에서 설치해서 실행해본 스크린샷입니다.
안그래도 윈도8에 익숙해지는것도 재미가 있을거 같아서 말입니다 ^^
직접 코드 작성해서 돌려본 스크린샷인데, 그나마 좀 더 이해하시는데 도움이 되실려나요?
public static void main (String [] args) {
int a=1, b=1;
System.out.println("[증가 연산자] - 전치와 후치의 차이 알아보기");
System.out.println("[변수 선언 및 초기화] a = "+ a +" , b = " + b);
System.out.println("==============================================================================");
System.out.println(" [증가 연산자] 전치 ++a \n (즉, ++가 변수값 앞에 있는 것을 전치라 부름)\n");
System.out.println("[1] 초기화된 a의 값 : " + a);
System.out.println("[2] ++a = " + ++a);
System.out.println("[3] 현재 a의 값 : " + a);
System.out.println("변수 a값을 확인해보면 " + a + " 값이 나옵니다.\n");
System.out.println("=============================================================================");
System.out.println(" [증가 연산자] 후치 b++ \n (즉, ++가 변수값 뒤에 있는 것을 후치라 부름)\n");
System.out.println("[1] 초기화 된 b의 값 : " + b);
System.out.println("[2] b++ = " + b++);
System.out.println("[3] 현재 b의 값 : " + b);
System.out.println("변수 b값을 확인해보면 " + b + " 값이 나옵니다.\n");
{
System.out.println("\n 그러므로 이번 대입연산자에서 증가연산자 공부 끝! ㅋㅋ");
}
if (a!=b)
{
System.out.println("두 개의 변수의 증가 연산자에 의한 출력 값이 서로 다릅니다.");
}
System.out.println("\n 블로그 주소 : http://melburn119.tistory.com/ \n 공부하시느라 수고 많으셨습니다. ^^"); }
}
▶ 파일 다운로드 : numUpDown.rar
제가 직접 작업한 파일들을 토대로 한번 실습해 보시기 바랍니다.
그리고 여러분들의 평가 및 조언, 트랙백 등 부탁드립니다. ^^ 감사합니다 ㅎ
'컨텐츠 Contents > [02] PC 관련 | 하드웨어' 카테고리의 다른 글
Scanner 함수 이용하여 입력받기 (scanf와 동일) + 성별 판별 프로그램 (3) | 2012.04.06 |
---|---|
[펌] 입출력함수, 변환기호 (특수문자) 및 클래스명 작명 규칙 (0) | 2012.04.06 |
우분투 리눅스 12.04 LTS 베타2 구동 영상 및 링크 (1) | 2012.03.30 |
[MarShall™의 도전] 다차원 배열을 이용하여 축구대표팀 선발 라인업 작성하기 (0) | 2012.03.27 |
[펌] 윈도8에 대해 개발자들이 알아야 할 10가지 by '황리건'님 (0) | 2012.03.27 |