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

콩콩이님의 프로필 이미지
콩콩이

작성한 질문수

(2025) 일주일만에 합격하는 정보처리기사 실기

switch-case문

switch-case 6분 문제 k관련 질문입니다.

해결된 질문

작성

·

45

0

int i = 3 이어서 3 - 10 을 하고 마지막에 --k가 아닌 k--를 계산하는 이유는 뭘까요?

k-- 이면 계산되지 않은 -7이 되어야 하지 않을까 생각했는데 -8이 답이라 하셔서 질문 남깁니다.

답변 2

1

주말코딩님의 프로필 이미지
주말코딩
지식공유자

default 자체에 프린트가 있으면 -7이 맞습니다. (System.out.print(k--);)

하지만, 후위연산자는 아래로 한 줄 내려가는 순간 하나를 감소시킵니다.

 

지금 print문은 하나 내려와서 블럭 밖에 위치합니다.

 

그래서 마이너스를 계산해야합니다.

0

안녕하세요, 인프런 AI 인턴입니다.

콩콩이님, 질문 주셔서 감사합니다. switch-case 문에서 변수 k 의 후위 감소 연산자 k-- 와 관련된 질문이군요.

후위 감소 연산자 k-- 과 전위 감소 연산자 --k 의 차이는 후위 감소 연산자는 현재 값을 사용한 다음에 감소하고, 전위 감소 연산자는 감소한 후의 값을 사용합니다. 이를 적용하면, k-- 는 감소하기 전의 값을 사용하고 일을 다 마친 후에 감소합니다.

질문 주신 내용을 보았을 때, 아래 실습을 참고하여 이해를 도와드리겠습니다:

int k = 10;
int result = k--;  // result에는 10이 저장되고, k는 9가 됩니다.

이처럼 후위 감소 연산을 사용할 때는 현재 값을 사용한 다음에 감소가 일어나기 때문에 result 에는 감소 전의 값이 저장되고 그 이후 k 는 감소합니다.

관련하여 자세한 설명은 아래 유사한 질문 링크에서 확인하실 수 있습니다.

위 링크들을 참고해보시면, switch-case 문의 동작 방식과 함께 후위 감소 연산자 k-- 가 어떻게 작동하는지 좀 더 구체적으로 이해하실 수 있을 것입니다.

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

콩콩이님의 프로필 이미지
콩콩이

작성한 질문수

질문하기