작성
·
188
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부분이 되서 실행이 안되는게 아닌가요??
네 그래서 조금씩 찍는 별의 개수가 달라집니다.
아하! 감사합니다!