반복문 for (쿠키)

Eungae's avatar
Dec 03, 2025
반복문 for (쿠키)

반복문 씹어먹었는 줄 알았는데 아니었네 ㅋㅋㅋ

질문은 이거다.

예제1.

void main() {
  for (var i = 1; i < 5; i++) {
    print('hello $i');
  }
}

/*
hello 1
hello 2
hello 3
hello 4
*/

예제1에서는 4번 반복되는 동안 각 회차의 값이 산출된다.

예제2.

void main() {
  String message = "hello";
  for (var i = 0; i < 5; i++) {
    message += '!';
  }
  print(message);
}

/*
예상
hello!
hello!!
hello!!!
hello!!!!
hello!!!!!

실제 결과
hello!!!!!
*/

왜지?

추정하기로는 예제1에서는 print값에 i가 포함되어 있지만, 예제2에서는 i가 포함되어 있지 않기 때문인가 싶다.

그게 무슨 영향이지?

우리의 GPT가 명쾌한 답을 주었다.

예제2를 해부해보자
String message = "hello";

for (var i = 0; i < 5; i++) {
  message += '!';
}

print(message);


여기서의 구조는 완전히 다르다.

반복문 안에서는 **message를 수정(누적)**만 한다.

출력(print)은 반복문이 모두 끝난 뒤 1번만 실행된다.

그러니까 실제 반복 중간 결과들은 모두 사라지고,
맨 마지막 상태만 출력되는 거지.

아하! 그렇구만!

그렇다면 다시 코드를 수정해보자. 내가 의도한 대로 나온다면 나는 for문은 마스터한거다.

예제3.

void main() {
  String message = "hello";
  for (var i = 0; i < 5; i++) {
    message += '!';
    print(message);
  }
}

/*
hello!
hello!!
hello!!!
hello!!!!
hello!!!!!
*/

관통해버렸쥬?

Share article

나새끼메이커