책 내용 질문하기
188페이지 문제 9번 질문이 있습니다.
도서
2022 시나공 정보처리산업기사 실기
페이지
188
조회수
229
작성일
2022-06-24
작성자
탈퇴*원
첨부파일

해설을 보면 i가 10일 때 hap이 0이라고 하는데 왜 그렇게 되는 것인가요? i-- 때문인것은 알 것 같은데 제가 궁금한 것은

다른 문제들은 보면 I--에 대한 코드가 i = 10일 때 while문이 끝난 다음에 i가 1 감소하는걸로 풀이가 될 때도 있는데, 이 문제는 왜 I--를 먼저 실행해주는지가 궁금합니다.

그리고 만약 i-- 코드를 먼저 실행했다치더라도, i = 9 일 때 그러면 i-- 가 되어서 i = 8로 계산을 해야하는데 8 / 3의 나머지는 1이 아니므로 hap += i; 문장을 실행하지 않고 그냥 다시 다음 while문으로 넘어가야 하는 것 아닌가요? 왜 나머지가 2인데도 불구하고 hap += i; 문장이 실행되고 넘어간걸까요? 그리고 더해진다 하더라도 8이 더해져야하는 것 아닌가요?

답변
2022-06-27 09:40:58

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

 

[1]

i--;  i++;  --i;  ++i;

위와 같이 세미콜론으로 끝나면서 단일연산자 하나만 쓰인 경우는 단순히 i에 1을 더하고 빼는 연산에 불과합니다.

아래와 같이요.

i--;  =  i=i-1; 

i++;  =  i=i+1;

--i;  =  i=i-1;

++i;  =  i=i+1;

단항연산자가 식에 전/후에 영향을 주려면 단독이 아닌 완전한 식 내에서 사용되어야 합니다. 

sum = sum + i++; 처럼 말이죠.

 

[2]

281쪽 문제9번 해설의 번호 기준으로 설명드립니다.

1번이 수행되기 전에 i와 hap은 10과 0을 갖습니다.

3번을 지나쳐 i는 9가 되고,

4번에서는 이렇게 i는 9~1까지 감소하며 조건 연산을 만나게 되겠죠.

그중 조건에 부합하는 7, 4, 1만이 5번을 수행하게 되어 결과로 12가 출력되게 됩니다.

 

그 아래 디버깅표의 경우 단순히 변수들의 값의 변화를 나열한 것에 지나지 않습니다.

줄을 명확하게 구분하려면 hap에서 

7은 i가 7인 곳의 오른쪽에,

11은 i가 4인 곳의 오른쪽에,

12는 i가 1인 곳의 오른쪽에 위치해야 하죠.

 

디버깅표로 혼란을 겪으신 것 같은데 가로 선이 그어지지 않은 값들의 경우 좌우 변수의 값 변화에 영향을 받거나 하지 않는다는 점, 염두에 두시기 바랍니다.

 

행복한 하루되세요 :)

  • 관리자
    2022-06-27 09:40:58

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

     

    [1]

    i--;  i++;  --i;  ++i;

    위와 같이 세미콜론으로 끝나면서 단일연산자 하나만 쓰인 경우는 단순히 i에 1을 더하고 빼는 연산에 불과합니다.

    아래와 같이요.

    i--;  =  i=i-1; 

    i++;  =  i=i+1;

    --i;  =  i=i-1;

    ++i;  =  i=i+1;

    단항연산자가 식에 전/후에 영향을 주려면 단독이 아닌 완전한 식 내에서 사용되어야 합니다. 

    sum = sum + i++; 처럼 말이죠.

     

    [2]

    281쪽 문제9번 해설의 번호 기준으로 설명드립니다.

    1번이 수행되기 전에 i와 hap은 10과 0을 갖습니다.

    3번을 지나쳐 i는 9가 되고,

    4번에서는 이렇게 i는 9~1까지 감소하며 조건 연산을 만나게 되겠죠.

    그중 조건에 부합하는 7, 4, 1만이 5번을 수행하게 되어 결과로 12가 출력되게 됩니다.

     

    그 아래 디버깅표의 경우 단순히 변수들의 값의 변화를 나열한 것에 지나지 않습니다.

    줄을 명확하게 구분하려면 hap에서 

    7은 i가 7인 곳의 오른쪽에,

    11은 i가 4인 곳의 오른쪽에,

    12는 i가 1인 곳의 오른쪽에 위치해야 하죠.

     

    디버깅표로 혼란을 겪으신 것 같은데 가로 선이 그어지지 않은 값들의 경우 좌우 변수의 값 변화에 영향을 받거나 하지 않는다는 점, 염두에 두시기 바랍니다.

     

    행복한 하루되세요 :)

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