inblog logo
|
나새끼메이커
    TIL (Today I Learned)

    반복문 for (쿠키)

    Eungae's avatar
    Eungae
    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

    나새끼메이커

    RSS·Powered by Inblog