책 내용 질문하기
정보처리산업기사 실기 1권 587페이지 이해안되요
도서
2020 시나공 정보처리산업기사 실기 [기본서]
페이지
587,588
조회수
230
작성일
2021-03-02
작성자
탈퇴*원
첨부파일
디버깅을실행하니 p가 2, n=3, double t=1.7, m=1, for문에서 i가 2로초기화되는것이 이해가 됩니다. 다만 r= n(3)%i(2) 인데 왜 0이 나오는지 이해가 안됩니다. 또한 코드를분석해보니 p가 증가하는것이 없고 p=n이 되어도 3이되는데 왜 디버깅표의 2열의 p가 5가되는지 이해가 안됩니다.
답변
2021-03-03 15:57:40

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

 

먼저 디버깅표가 반복문의 회전수가 아닌 단순히 변수값 변화의 나열임을 염두에 두세요.

 

m이 초기값 1을 가질 때 for문은

for(int i=2; i<=1; i++) 과 같은 구성을 갖춥니다.

초기값부터 조건식(최종값)이 거짓(false)이 되어버려 for문을 아예 수행하지 않게 됩니다.

때문에 바로 13번으로 이동해서 n의 값이 1 증가하고

 

n=4, t=2.00..., m=2가 되어 다시 for문으로 가게 되죠.

for(int i=2; i<=2; i++) 가 되고, 이때가 되서야 for문 안으로 진입하여

r=n%i를 수행하게 됩니다. n은 이때 4이고 i는 2이니, r은 0의 값을 갖게 되죠.

 

행복한 하루되세요 :)

  • 관리자
    2021-03-03 15:57:40

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

     

    먼저 디버깅표가 반복문의 회전수가 아닌 단순히 변수값 변화의 나열임을 염두에 두세요.

     

    m이 초기값 1을 가질 때 for문은

    for(int i=2; i<=1; i++) 과 같은 구성을 갖춥니다.

    초기값부터 조건식(최종값)이 거짓(false)이 되어버려 for문을 아예 수행하지 않게 됩니다.

    때문에 바로 13번으로 이동해서 n의 값이 1 증가하고

     

    n=4, t=2.00..., m=2가 되어 다시 for문으로 가게 되죠.

    for(int i=2; i<=2; i++) 가 되고, 이때가 되서야 for문 안으로 진입하여

    r=n%i를 수행하게 됩니다. n은 이때 4이고 i는 2이니, r은 0의 값을 갖게 되죠.

     

    행복한 하루되세요 :)

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