VB] For 문 사용시 주의사항
Visual Basic 6.0 기준으로 작성을 하였습니다.
기본적으로 For 문은 초기값부터 To 값까지 증감값만큼 건너띄게 되어 있는데
프로그램을 하다가 미쳐 생각하지 못했던 부분이 에러로 발생하여 팁으로 올립니다.
VB For 문
For iProjCnt =1 To .MaxRows
'insert row
.MaxRows = .MaxRows + 1
iProjCnt = iProjCnt + 1
Next
위와 같이 프로그램이 구성되어 있고 To 에 Row값이 내부 로직에 의해서 변하게 됩니다.
그럼 이 For 문이 몇번을 수행하게 될까요?
만약 처음에 1~100까지 출력을 하다가 중간에 To값이 120 이 되었으면 120까지 진행을 할까요?
For문은 처음에 설정된 값으로만 수행합니다.
즉, MaxRows 값은 변경되어도 처음 값인 100까지만 수행이 됩니다.
아시는 분들도 있겠지만, 아무 생각없이 For문을 쓰다보니 이런 현상이 발생하네요
결국 While문으로 아래와 같이 수정하였습니다.
Wile이나 Do while 등은 매번 조건을 체크하기 때문에 정상적으로 수행 되었습니다.
iProjCnt = 1
While iProjCnt <= .MaxRows
'insert row
.MaxRows = .MaxRows + 1
iProjCnt = iProjCnt + 1
Wend
To값이 변경되는 경우는 For문을 사용할 수 없네요.
댓글
댓글 쓰기