책 내용 질문하기
18년 3회대비 산업기사실기모의고사 2번
도서
2018 시나공 정보처리기사 실기(산업기사 포함)
페이지
조회수
40
작성일
2018-10-05
작성자
탈퇴*원
첨부파일

cal함수가 3->2로변화는데 왜변화하는지알려주세요 그리고 이문제 전체풀의과정도알려주세요

답변
2018-10-05 11:13:18

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

해당 코드는 메인함수의 경우 i가 0~3까지 4회 반복하면서 cal(i) 함수를 호출하여 변환된 a값을 b에 누적시키는 Java 코드입니다.

이 코드에서 주의할 점은

1. a가 전역변수 라는 점.

2. b가 지역변수 라는 점.

3. 사용자정의함수 cal()은 void 속성이기 때문에 반환값이 없다는 점

4. a*=++b와 a-=--b가 a = a * ++b와 a = a - --b라는 점

정도 입니다.

1. i가 0, 1일 때 cal함수를 호출하면 a*=++b를 계산하여 0에서는 a가 1이 되고, 이를 b에 누적하여 b는 1이 됩니다.

2. 1에서는 a가 2가 되고, 이를 b에 누적하여 b는 3이 되죠.

3. i가 2, 3일 때 cal함수를 호출하면 a-=--b를 계산하여 2에서는 a가 1이 되고, 이를 b에 누적하여 b는 4가 됩니다.

4. 3에서는 a가 -1이 되고, 이를 b에 누적하여 b는 3이 되죠.

(위의 b는 main함수의 변수 b입니다.)

질문하신 3->2가 되는 과정은 위 4번에서 a -= --b를 수행할 때 입니다. 4번을 수행할 때 b에 저장되어 있는 값은 3입니다(cal(i)). 전치수식인 --b를 수행하면 2가 되는 것이죠. 이것을 다시 a에서 빼게 되면 a가 -1이 됩니다.

디버깅표와 함께 코드를 다시 한 번 순서대로 따라가 보세요.

그럼에도 이해가 되지 않는 부분이 있다면 구체적으로 질문해주시면 자세한 안내가 가능합니다.

행복한 하루되세요.^^

  • *
    2018-10-05 11:13:18

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

    해당 코드는 메인함수의 경우 i가 0~3까지 4회 반복하면서 cal(i) 함수를 호출하여 변환된 a값을 b에 누적시키는 Java 코드입니다.

    이 코드에서 주의할 점은

    1. a가 전역변수 라는 점.

    2. b가 지역변수 라는 점.

    3. 사용자정의함수 cal()은 void 속성이기 때문에 반환값이 없다는 점

    4. a*=++b와 a-=--b가 a = a * ++b와 a = a - --b라는 점

    정도 입니다.

    1. i가 0, 1일 때 cal함수를 호출하면 a*=++b를 계산하여 0에서는 a가 1이 되고, 이를 b에 누적하여 b는 1이 됩니다.

    2. 1에서는 a가 2가 되고, 이를 b에 누적하여 b는 3이 되죠.

    3. i가 2, 3일 때 cal함수를 호출하면 a-=--b를 계산하여 2에서는 a가 1이 되고, 이를 b에 누적하여 b는 4가 됩니다.

    4. 3에서는 a가 -1이 되고, 이를 b에 누적하여 b는 3이 되죠.

    (위의 b는 main함수의 변수 b입니다.)

    질문하신 3->2가 되는 과정은 위 4번에서 a -= --b를 수행할 때 입니다. 4번을 수행할 때 b에 저장되어 있는 값은 3입니다(cal(i)). 전치수식인 --b를 수행하면 2가 되는 것이죠. 이것을 다시 a에서 빼게 되면 a가 -1이 됩니다.

    디버깅표와 함께 코드를 다시 한 번 순서대로 따라가 보세요.

    그럼에도 이해가 되지 않는 부분이 있다면 구체적으로 질문해주시면 자세한 안내가 가능합니다.

    행복한 하루되세요.^^

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