Q&A

  • 어린왕자의 Loop에 대한 단순한 질문(2)
안녕하세요..영원한 델초보 어린왕자입니다..

이번 질문도 진짜 간단해요..



또 예를 들어서..질문하죠..

k:=10;

for i:=1 to k do

begin

if i=7 then k:k-2; // 특정조건에 맞으면 k에 2를 뺀다.

end;



쫌 이상한 예제지만..

어떤 특정한 조건에 맞으면 마지막 k값을 바꿔서 루프횟수를 변경하고 싶은데요..

음..이때도..while문으로 쓰는 수밖에 없나요?

도와주세요





2  COMMENTS
  • Profile
    이준해 2000.10.09 21:58
    for 문은 loop 시작과 동시에 매개변수(시작, 끝값)를 확정하고 시작합니다.

    실행속도를 높이기 위해서라고 알고 있습니다.



    K 는 끝값이므로 for 가 일단 시작한 후에는 변경해도 loop 횟수에 영향을 주지

    못합니다.



    즉, Loop 내에서 값을 바꾸면 에러가 나거나 혹은 아무일 없거나(?)

    알수 없는 결과를 낼 것으로 보입니다.



    While, do, until등을 쓰세요.



    이준해





    어린왕자 wrote:

    > 안녕하세요..영원한 델초보 어린왕자입니다..

    > 이번 질문도 진짜 간단해요..

    >

    > 또 예를 들어서..질문하죠..

    > k:=10;

    > for i:=1 to k do

    > begin

    > if i=7 then k:k-2; // 특정조건에 맞으면 k에 2를 뺀다.

    > end;

    >

    > 쫌 이상한 예제지만..

    > 어떤 특정한 조건에 맞으면 마지막 k값을 바꿔서 루프횟수를 변경하고 싶은데요..

    > 음..이때도..while문으로 쓰는 수밖에 없나요?

    > 도와주세요

    >

    >

  • Profile
    강인규 2000.10.08 00:04
    for문내에서 변수값 변경은 델파이3부턴가부터 안된다는 얘기를 들었습니다(맞나?)

    어찌됐든 안됩니당... 제가 알기론.(되는 고수님들 연락주셍~)

    while로 구현하심 되겠군요.

    속도는? 거기서 거기랍니다.



    어린왕자 wrote:

    > 안녕하세요..영원한 델초보 어린왕자입니다..

    > 이번 질문도 진짜 간단해요..

    >

    > 또 예를 들어서..질문하죠..

    > k:=10;

    > for i:=1 to k do

    > begin

    > if i=7 then k:k-2; // 특정조건에 맞으면 k에 2를 뺀다.

    > end;

    >

    > 쫌 이상한 예제지만..

    > 어떤 특정한 조건에 맞으면 마지막 k값을 바꿔서 루프횟수를 변경하고 싶은데요..

    > 음..이때도..while문으로 쓰는 수밖에 없나요?

    > 도와주세요

    >

    >