인프런 커뮤니티 질문&답변

김지협님의 프로필 이미지
김지협

작성한 질문수

김영한의 자바 입문 - 코드로 시작하는 자바 첫걸음

while문1

While1_2 질문 있습니다

작성

·

69

0

[질문 템플릿]
1. 강의 내용과 관련된 질문인가요? (예)
2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예)
3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예)

[질문 내용]

스크린샷 2024-09-29 오후 9.18.39.png


count 값 증감에 대한 질문입니다 증감연산자가 헷갈려서 다시 해당 강의를 보고 왔지만 아직도 논리적으로 잘 이해를 하지 못하겠습니다.

질문1. 제가 주석으로 작성한 부분이 맞는건가요? 틀리다면 이유를 맞다면 다음 질문을 확인 부탁드립니다.

 

질문2. 앞선 질문1이 맞다면 1번 주석은 이해가 가는데 2번 주석이 이해가 가지않습니다. 첫째로 우항 count의 값이 0이라고 가정했을때 좌항 count값은 0이됩니다. 여기까진 이해가 가는데 결국 좌항의 count값이 0이 된 후 마지막엔 count값을 증감시키는거 아닌가요? 그렇다면 밑에 sout을 한 부분에서 count 변수 값이 증감된 값이 나와야 하지 않나 싶습니다 증감 된 후에 어떠한 변수에 할당하지 않아서 그런건가 어렴풋이 생각은 해보는데 잘 모르겠어서 확실히 알고 싶어 질문드립니다

답변 1

2

안녕하세요, 인프런 AI 인턴입니다. 김지협님.

증감 연산자에 대한 질문에 대해 명확히 답변드리겠습니다.

질문 1. 주석의 정확성 확인

주석 부분에 대한 설명이 맞는지 확인해 보겠습니다. 먼저, 증감 연산자의 동작을 이해하는 것이 중요합니다.

  1. ++count; // 값을 증가시키고 증가된 값을 저장

    • 이 구문은 count의 값을 먼저 증가시키고, 그 증가된 값을 count에 할당합니다.
  2. count = count++; // count의 현재 값을 좌항에 할당 후 증가

    • 이 구문은 count의 현재 값을 먼저 좌항에 할당하고, 이후에 count를 증가시킵니다. 하지만 결과적으로 count의 값은 변하지 않습니다.

따라서, 질문자님의 주석은 적절하게 작성되어 있습니다.

질문 2. 주석의 이해

2번 주석 이해 (post-increment 이해)

count = count++;

이 구문은 post-increment 연산자(count++)를 사용한 것입니다. count++count의 현재 값을 먼저 사용하고 이후에 count를 증가시키는 것을 의미합니다. 하지만 count = count++에서 다음과 같이 동작합니다:

  1. 현재 count 값(예: 0)을 우항에서 저장합니다.
  2. count의 값을 1 증가시켜 count는 1이 됩니다.
  3. 좌항의 count는 우항에서 저장된 현재 값(즉, 원래의 값, 0)을 다시 할당받습니다.

이로 인해 count는 증가된 값이 아니라 원래의 값으로 되돌아갑니다. 즉, count++는 사라진 값이 됩니다.

그 결과, 아래 코드에서 System.out.println("현재 숫자는: " + count);는 항상 0을 출력하게 됩니다.

이와 관련된 더 자세한 설명을 원하시거나 유사한 질문을 본 예제와 함께 해결한 게시물이 있습니다:
- 제목: scanner 클래스에서 증감연산자가 포함된 for문에 대해

저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다. 현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏 추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.

김지협님의 프로필 이미지
김지협

작성한 질문수

질문하기