• 카테고리

    질문 & 답변
  • 세부 분야

    게임 프로그래밍

  • 해결 여부

    미해결

연습문제 for문 풀이 순서를 잘 모르겠습니다

22.02.05 11:18 작성 조회수 145

0

안녕하세요! 강의 너무 잘 듣고있습니다!

연습문제 풀이도중에 궁금한 부분때문에 질문 남깁니다!

for 문 (초기식; 조건식; 제어식;)

{}

에서 순서가 1번이 초기식 2번이 조건식 3번이 중괄호 안에 명령문 마지막으로 제어식이 실행되는걸로 알고있는데,

연습문제 별찍기 3번에서

for (int i = 0; i < input; i++)

{

        for (int j = 0; j < (input - i); j++)

        {

                   cout << "*"

         }

         cout << endl;

}

이 부분에서 첫번째로 실행 되는게

1) int i = 0;

2) i < input;

3) 그 다음 for 문

4) *****출력

5) j++

6) 한칸 띄고

7) i++

인걸로 알고있습니다

이제 그러면 i++ 가 되었으니 input을 5라고 입력해줬을 때

1 < 5 나 똑같은 부분인데

이제 그 다음에 실행될 j부분에서도

j < (5 - 1) 이고 ****출력 후 j++가 되는데

그러면 이제 계속 증가하다보면 

i 가 3이 되면 3 < input (5) 이고

다음 for문에서는 j < (input - 3) 이면

3 < 5 - 3부분이 되서 실행이 안되는게 아닌가요??

제가 잘못알고 있는 부분이 있을거라고 생각하는데 어느 부분인지 잘 이해가 안가서요!

검색을 해도 강의만큼 크게 머리 속으로 잘 들어오질 않네요!

답변 1

답변을 작성해보세요.

0

4) *****출력
5) j++

이 부분이 항상 4번처럼 별 5개를 찍는건 아니고
for (int j = 0 ....) 과 관련된 for문 때문에 찍는 별표의 개수가 달라집니다.

i 가 3이 되면 3 < input (5) 이고
다음 for문에서는 j < (input - 3) 이면
3 < 5 - 3부분이 되서 실행이 안되는게 아닌가요??

네 그래서 조금씩 찍는 별의 개수가 달라집니다.

아하! 감사합니다!