Is there a "FOR/NEXT" loop problem ?

Discussion in 'Questions (Windows Mobile)' started by dan kabestan, Dec 15, 2007.

  1. dan kabestan

    dan kabestan Member Licensed User

    Would you see the following script sample :
    i put 2 cascaded loops and the second one must
    modify the limit of the first. So :

    '----------------------------------------
    Sub Globals
    'listbox1 declared.
    'tn = 0
    'tm = 0
    End Sub
    '--------------------------------------
    Sub App_Start
    Form1.Show
    test
    End Sub
    '------------------------------------
    Sub test
    tn=50
    tm=5
    n=0
    For n = 0 To tn
    For m = 0 To tm
    If tm<7 Then : tm = tm+1 : End If
    If tn<100 Then : tn = tn+1 : End If
    Next
    listbox1.Add("n=" & n & " tn=" & tn & " tm=" & tm)
    Next
    listbox1.Add("fin ---- n=" & n & " tn=" & tn & " tm=" & tm)
    End Sub
    '----------------------------------

    Result, (with tn and tm global or not) :
    tm is modified, BUT, tn is not !
    (a '51' stop is curious !)
    Is it a kind of ADA-like safety limit ?
    Sure, one solution is to replace first loop by a DO/WHILE,
    but is it really normal ? where is my wrong ?
    Thank's for help
    denis
     
  2. Erel

    Erel Administrator Staff Member Licensed User

    The upper limit (or lower limit if step < 0) is only calculated when the program enters the loop.
    Changing it inside the for loop will not affect the number of iterations.
     
  3. dan kabestan

    dan kabestan Member Licensed User

    :sign0087: Right, recorded! (it was not evident)
    thanks for fast answer.
     
Loading...
  1. This site uses cookies to help personalise content, tailor your experience and to keep you logged in if you register.
    By continuing to use this site, you are consenting to our use of cookies.
    Dismiss Notice