책 내용 질문하기
259페이지 29번문제
도서
2023 시나공 정보처리산업기사 실기
페이지
259
조회수
234
작성일
2023-09-22
작성자
탈퇴*원
첨부파일

259페이지 29번 문제에서 마지막에

for (int i = 0; i < 5; i++, p *= i);

이렇게 나와있는데 i++가 후치연산이라 연산이 다 끝난다음 +1을 해줘야된다고

알고있었는데 제가 해설 이해를 잘 못한건지 바로 +1을 해준것 같아서 문의남겨요

혹시 i++일때와 ++i때 정답이 달라질까요?

 

252페이지 12번 문제같은경우는

k++여서 k에 20먼저 대입하고 나중에 +1을하기때문에

result=20이다라고 이해를 했는데 

 

어떻게생각해야 정확히 이해하고 넘어갈까요?

답변
2023-09-25 16:45:48

안녕하세요 길벗수험서 운영팀입니다.

 

[259쪽 29번]

전치/후치 증감 연산자가 식에 영향을 주는 것은 '하나의 식' 안에서 뿐입니다. 즉, sum = sum + i++; 과 같이 세미콜론(;) 또는 쉼표(,)로 구분되는 각 식 내에서만 전/후가 의미가 있을 뿐, 위와 같이 개별로 사용될 때는 그저 1을 증가시키는 역할 외에 다른 역할을 수행하지 못합니다. 

즉, i++과 p*=i는 쉼표로 구분되어 있어 i++이 ++i로 바뀌든지 관계 없이 그저 1을 증가시키는 i=i+1과 동일합니다.

 

[252쪽 12번]

3항연산자(조건?참:거짓)은 3개로 구분되어 있는 것 같으나, 이것은 연산 후의 식을 기준으로 해야 합니다.

즉, j<k가 참인 경우 result=k++; 이라는 식으로

j<k가 거짓이면 경우 result=--L; 이라는 식으로 인식하고 전치 후치 연산을 풀어내야죠. 

이렇게 풀어냈을 때 위의 두 식은 하나의 식에 해당하므로 전치 후치를 적용하여 풀어내면 되겠습니다.

 

행복한 하루되세요 :)

  • 관리자
    2023-09-25 16:45:48

    안녕하세요 길벗수험서 운영팀입니다.

     

    [259쪽 29번]

    전치/후치 증감 연산자가 식에 영향을 주는 것은 '하나의 식' 안에서 뿐입니다. 즉, sum = sum + i++; 과 같이 세미콜론(;) 또는 쉼표(,)로 구분되는 각 식 내에서만 전/후가 의미가 있을 뿐, 위와 같이 개별로 사용될 때는 그저 1을 증가시키는 역할 외에 다른 역할을 수행하지 못합니다. 

    즉, i++과 p*=i는 쉼표로 구분되어 있어 i++이 ++i로 바뀌든지 관계 없이 그저 1을 증가시키는 i=i+1과 동일합니다.

     

    [252쪽 12번]

    3항연산자(조건?참:거짓)은 3개로 구분되어 있는 것 같으나, 이것은 연산 후의 식을 기준으로 해야 합니다.

    즉, j<k가 참인 경우 result=k++; 이라는 식으로

    j<k가 거짓이면 경우 result=--L; 이라는 식으로 인식하고 전치 후치 연산을 풀어내야죠. 

    이렇게 풀어냈을 때 위의 두 식은 하나의 식에 해당하므로 전치 후치를 적용하여 풀어내면 되겠습니다.

     

    행복한 하루되세요 :)

· 5MB 이하의 zip, 문서, 이미지 파일만 가능합니다.
· 폭언, 욕설, 비방 등은 관리자에 의해 경고없이 삭제됩니다.