• 카테고리

    질문 & 답변
  • 세부 분야

    프로그래밍 언어

  • 해결 여부

    미해결

for문에 증감연산자 질문입니다.

21.03.13 13:57 작성 조회수 3.02k

2

for문 예제를 보면

for (int count = 0; count < 10; ++count)

에서 증감연산자 ++가 count앞에 오는걸 알 수 있는데요,

이 for문은

for (int count = 0; count < 10; count++)

로 바꾸어도 같은 결과가 출력이 되는것 같은데

++count를 할때와 count++를 할때의 차이점이 있을까요?

답변 2

·

답변을 작성해보세요.

5

김현지님의 프로필

김현지

2021.03.13

안녕하세요, ybkim1987님!

증감연산자

int a = 1;

a가 1일 경우, ++a를 출력하면 2가 출력되지만 a++를 출력하면 1이 출력됩니다.

전위 증감연산자는 값을 바로 증가시킨 후 자신의 객체가 그대로 반환되기 때문에 속도가 빠릅니다.

반면에 후위 증감연산자는 다음 행부터 해당 객체에 변화가 생겨야하므로 객체를 복사해 저장하는 부분이 필요합니다.

그렇기 때문에 후위 증감연산자가 전위 증감연산자보다 속도가 느리다는 특징이 있습니다.

상대적으로 전위 증감연산자가 후위 증감연산자보다 낭비가 적으며 for문의 반복 횟수가 많을수록 전위 증감연산자의 경우가 더 효율적으로 실행됩니다.

다시 질문으로 돌아가서,

ybkim1987님께서 예시로 들어주신 for문의 경우 증감식이 for문의 일부로 존재하고 있지만 해당 식이 실행될 때는 단독으로 실행됩니다.

조건식과 증감식은 동시에 실행되는 것이 아닌, 따로 실행되기 때문에 둘 중 어떤 형태를 쓰더라도 for문에서 차이가 없습니다.

만약 while문으로 루프문을 순회할 경우에는 차이가 생깁니다.

혹시 궁금한 점이 있으시다면 댓글 남겨주세요.

도움이 되셨으면 좋겠습니다. :)

c0ffeeprince님의 프로필

c0ffeeprince

2024.01.11

와 감사합니다 gpt가 계속 이상한소리하길래 for문에서 헷갈렸었네요

for문에서는 상관없다니 걱정이 덜하네요.

3

안소님의 프로필

안소

2021.03.13

현지님께서 말씀해주신 것처럼 "단독 문장으로" 사용할 때는 약간의 속도에 차이가 있다는 것 외에는 별다른 차이가 없습니다.

https://www.inflearn.com/questions/108838

속도의 차이가 왜 발생하는지는 위 링크를 정독해보시면 이해가 되실 것 같습니다.

전위 증감, 후위 증감 연산자의 작동 원리를 적어놓은 답변입니다.