책 내용 질문하기
75페이지 1번문제 질문이요
도서
2019 시나공 정보처리기사 실기(산업기사포함)
페이지
75,1
조회수
97
작성일
2019-12-09
작성자
탈퇴*원
첨부파일
(1)에 n=7 (2)=n 인건 알겠습니다 그런데 제가 식을 계산해보면 for (i=1; i<=n; i++)를 하고나면 i값이 1에서 2로바뀌고 for(j=1; j<=i; j++)이 부분에선 j<=i(2)가되어 두번반복하고 j값이 두번증가해서 2,3이 저장되어 첫출력에 2,3이 나오는것이 아닌가요? 출력할때 처음으로 1이나오는게 이해가 안되서 질문남겨봅니다 ㅠㅠ
답변
2019-12-10 10:33:42

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

 

for문 내부의 각 식의 기본 수행순서를 다시 한 번 확인해보시기 바랍니다.

 

for(①; ②; ③) {

   ④;

}

 

위의 for문이 ④를 3회 반복한다고 가정했을 때, 순서는

1회 : ①, ②(조건 참), ④

2회 : ③, ②(조건 참), ④

3회 : ③, ②(조건 참), ④

종료 : ③, ②(조건 거짓) <탈출>

입니다.


처음 for (i=1; i<=n; i++) 에 진입하게 되면 i는 1을 갖고, for(j=1; j<=i; j++)으로 들어갑니다.
for(j=1; j<=i; j++) 에 진입하기 되면 j는 1을 갖고, printf("%3d", j); 을 수행하게 되겠죠.
이때 j for문은 j<=1이니 printf("%3d", j);를 1회만 수행하게 됩니다. (이때 j는 1)

처음에는 초기값을 갖고 수행을 시작하여, 2회 때부터 증가값을 적용한다는 것에 주의하세요.

행복한 하루되세요 :)
  • 관리자
    2019-12-10 10:33:42

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

     

    for문 내부의 각 식의 기본 수행순서를 다시 한 번 확인해보시기 바랍니다.

     

    for(①; ②; ③) {

       ④;

    }

     

    위의 for문이 ④를 3회 반복한다고 가정했을 때, 순서는

    1회 : ①, ②(조건 참), ④

    2회 : ③, ②(조건 참), ④

    3회 : ③, ②(조건 참), ④

    종료 : ③, ②(조건 거짓) <탈출>

    입니다.


    처음 for (i=1; i<=n; i++) 에 진입하게 되면 i는 1을 갖고, for(j=1; j<=i; j++)으로 들어갑니다.
    for(j=1; j<=i; j++) 에 진입하기 되면 j는 1을 갖고, printf("%3d", j); 을 수행하게 되겠죠.
    이때 j for문은 j<=1이니 printf("%3d", j);를 1회만 수행하게 됩니다. (이때 j는 1)

    처음에는 초기값을 갖고 수행을 시작하여, 2회 때부터 증가값을 적용한다는 것에 주의하세요.

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