Loading ...
Sorry, an error occurred while loading the content.

Re: [libertybasic] Variable out of loop

Expand Messages
  • Henrik
    Thank you Ralph, it is a good idea ... ________________________________ From: Ralph Beckett To: libertybasic@yahoogroups.com Sent:
    Message 1 of 21 , Jan 28, 2013
    • 0 Attachment
      Thank you Ralph, it
      is a good idea ...


      ________________________________
      From: Ralph Beckett <ralph.c.beckett@...>
      To: libertybasic@yahoogroups.com
      Sent: Monday, January 28, 2013 9:37 PM
      Subject: Re: [libertybasic] Variable out of loop


       
      Hi --

      It looks like the for-next loop increments at the next statement. This is
      the way Liberty Basic works but not the way QBasic or Javascript works. I
      guess I did not realize the inconsistency since I mostly use the when-wend
      structure:

      i=0
      while i<10
      i=i+1
      print i
      wend
      print
      print i

      Thanks for pointing out the issue. The reason I use the while-wend
      structure is for nested loops since the loop is not executed if the while
      statement is false (unlike the for-next loop).

      Ralph

      On Mon, Jan 28, 2013 at 12:08 AM, henriknilson henriknilson@...>wrote:

      > **
      >
      >
      > Hello
      >
      > In the following code "a" which is out of loop equal to "11", while the
      > last value of it inside the loop is "10".
      > Why is it always plus one when it is out of loop in all kind of basics,
      > please?
      >
      > Thank you
      >
      > 'The code
      > for a=1 to 10
      > print a
      > next
      > print
      > print a' I suppose this value should be 10 instead of 11
      >
      >
      >

      [Non-text portions of this message have been removed]




      [Non-text portions of this message have been removed]
    • Henrik
      Thank you Stefan for your valuable information… ________________________________ From: Stefan Pendl To: libertybasic@yahoogroups.com
      Message 2 of 21 , Jan 28, 2013
      • 0 Attachment
        Thank you Stefan for your valuable
        information…


        ________________________________
        From: Stefan Pendl <pendl2megabit@...>
        To: libertybasic@yahoogroups.com
        Sent: Monday, January 28, 2013 11:15 PM
        Subject: Re: [Bulk] Re: [libertybasic] Re: Variable out of loop


         
        Am 28.01.2013 23:10, schrieb Henrik:
        > Thank you so much Stefan for your clarification, you are right,
        > most kind of basics that I worked with scince 1980s, like the earlier basic,
        > thru msx and GW, for “MS DOS” up till LB which is for windows, have the samefeatureconcerning
        > this aspect.
        > Your code is
        > very useful after adding some lines:
        >
        > 'Your code
        > for i = 1 to 10
        > a = i
        > print i
        > next
        > print
        > print a' will = to 10 instead of 11
        > end
        >

        Since I only use the counter variable inside of the FOR..NEXT loop, I
        never encountered a problem.

        In addition counting an unknown number of items is done best with a
        WHILE..WEND loop anyways.

        --
        Stefan Pendl
        http://stefanpendl.runbasichosting.com/

        LB 4.04 Pro ... http://www.libertybasic.com/assist.html
        LB 4.04 ....... http://www.libertybasic.com/lb404setup.exe

        LB Community Wiki .............. http://basic.wikispaces.com/
        LB Programmer's Encyclopedia ... http://lbpe.wikispaces.com/
        LB Bug Tracker ................. http://libertybasicbugs.wikispaces.com/

        Books at http://www.lulu.com/ and http://www.amazon.com/
        Alyce Watson ... APIs for Liberty BASIC
        Carl Gundel .... Beginning Programming with Liberty BASIC

        Windows 7 Home Premium 64-bit SP1
        AMD Turion X2 RM-70 2GHz, 4GB RAM



        [Non-text portions of this message have been removed]
      • paradisejb
        ... Like Stefan, I like the WHILE/WEND approach. a=1 while a
        Message 3 of 21 , Jan 28, 2013
        • 0 Attachment
          --- In libertybasic@yahoogroups.com, "henriknilson" wrote:
          >
          > Hello
          >
          > In the following code "a" which is out of loop equal to "11", while the last value of it inside the loop is "10".
          > Why is it always plus one when it is out of loop in all kind of basics, please?
          >
          > Thank you
          >
          > 'The code
          > for a=1 to 10
          > print a
          > next
          > print
          > print a' I suppose this value should be 10 instead of 11
          >

          Like Stefan, I like the WHILE/WEND approach.
          a=1
          while a <= 10
          print a
          a=a+1
          wend
          end
        • green8819
          Verdict? I think NEXT is Not Guilty As Rod has pointed out, it s duty is to increment. The FOR...TO decides whether to execute the loop. We decide what
          Message 4 of 21 , Jan 28, 2013
          • 0 Attachment
            Verdict?

            I think NEXT is 'Not Guilty'

            As Rod has pointed out, it's duty is to increment.
            The FOR...TO decides whether to execute the loop.
            We decide what should happen in between.

            for x=1 to 10
            do something
            NEXT

            Normally the value of x is not important after NEXT.
            However, to be safe, we decide to EXIT the loop when x reahes upper limit.

            For x=1 to 10
            do something
            if x=10 then EXIT for
            next

            Besides other alternatives already mentioned by contributors, the following is easy to understand:

            x=0
            do
            x=x+1
            print x
            loop until x=10
            print x

            I still prefer good old FOR...NEXT. There is no need to initialize (x=0) or increment (x=x+1).
          • Henrik
            But the last value of “a” in your code out of loop will be plus one, exactly like for next loop, just have a look at your code after adding additional line
            Message 5 of 21 , Jan 28, 2013
            • 0 Attachment
              But the last value of “a” in your code out of loop will be
              plus one, exactly like for next loop, just have a look at your code after
              adding additional line to it…
              Stefan used for next loop with fixing last value of the
              variable inside the loop.
              Ralph used while/wend approach as you see below with wanted
              result.

              Thank you 
               
              'your code

              a=1
              while a <= 10
              print a
              a=a+1
              wend
              print
              print a' additional line out of loop, "a" will be =11 instead of 10
              end
              'code ended

              'Stefan’s code

              for i = 1 to 10
              a = i
              print i
              next
              print
              print a' the value of "a" out of loop will be= to 10
              end
              'code ended

              'Ralph’s code 


              i=0
              while i<10
              i=i+1
              print i
              wend
              print
              print i ' the value of "i" out of loop will be= to 10
              'code ended




              ________________________________
              From: paradisejb <jburman1860@...>
              To: libertybasic@yahoogroups.com
              Sent: Tuesday, January 29, 2013 1:57 AM
              Subject: [libertybasic] Re: Variable out of loop


               


              --- In libertybasic@yahoogroups.com, "henriknilson" wrote:
              >
              > Hello
              >
              > In the following code "a" which is out of loop equal to "11", while the last value of it inside the loop is "10".
              > Why is it always plus one when it is out of loop in all kind of basics, please?
              >
              > Thank you
              >
              > 'The code
              > for a=1 to 10
              > print a
              > next
              > print
              > print a' I suppose this value should be 10 instead of 11
              >

              Like Stefan, I like the WHILE/WEND approach.
              a=1
              while a <= 10
              print a
              a=a+1
              wend
              end




              [Non-text portions of this message have been removed]
            • Henrik
              Thank you mike, your “do” code is very interested to me… ________________________________ From: green8819 To:
              Message 6 of 21 , Jan 28, 2013
              • 0 Attachment
                Thank you mike, your “do”
                code is very interested to me…


                ________________________________
                From: green8819 <mike4612@...>
                To: libertybasic@yahoogroups.com
                Sent: Tuesday, January 29, 2013 6:30 AM
                Subject: [libertybasic] Re: Variable out of loop


                 
                Verdict?

                I think NEXT is 'Not Guilty'

                As Rod has pointed out, it's duty is to increment.
                The FOR...TO decides whether to execute the loop.
                We decide what should happen in between.

                for x=1 to 10
                do something
                NEXT

                Normally the value of x is not important after NEXT.
                However, to be safe, we decide to EXIT the loop when x reahes upper limit.

                For x=1 to 10
                do something
                if x=10 then EXIT for
                next

                Besides other alternatives already mentioned by contributors, the following is easy to understand:

                x=0
                do
                x=x+1
                print x
                loop until x=10
                print x

                I still prefer good old FOR...NEXT. There is no need to initialize (x=0) or increment (x=x+1).




                [Non-text portions of this message have been removed]
              • Stefan Pendl
                ... Generally speaking, every loop construct has its purpose. For finite loops, where you exactly know the limits FOR..NEXT is best used. For loops where you
                Message 7 of 21 , Jan 29, 2013
                • 0 Attachment
                  Am 29.01.2013 07:54, schrieb Henrik:
                  > Thank you mike, your “do”
                  > code is very interested to me…
                  >

                  Generally speaking, every loop construct has its purpose.

                  For finite loops, where you exactly know the limits FOR..NEXT is best used.

                  For loops where you don't know the end limit, but an end condition, you
                  use WHILE..WEND or DO..LOOP.

                  Everything can be found in the help file under "Liberty BASIC v4.04 Help
                  => Language Syntax and Usage => Logic and Structure => Looping Structures".

                  If you just read through the help file, you will have a brief knowledge
                  of the available commands, which will help you making better decisions
                  for what command to use in the current situation.

                  If you complain that the help file is lacking a search feature, this has
                  been taking care of already, see http://basic.wikispaces.com/HelpSearch


                  --
                  Stefan Pendl
                  http://stefanpendl.runbasichosting.com/

                  LB 4.04 Pro ... http://www.libertybasic.com/assist.html
                  LB 4.04 ....... http://www.libertybasic.com/lb404setup.exe

                  LB Community Wiki .............. http://basic.wikispaces.com/
                  LB Programmer's Encyclopedia ... http://lbpe.wikispaces.com/
                  LB Bug Tracker ................. http://libertybasicbugs.wikispaces.com/

                  Books at http://www.lulu.com/ and http://www.amazon.com/
                  Alyce Watson ... APIs for Liberty BASIC
                  Carl Gundel .... Beginning Programming with Liberty BASIC

                  Windows 7 Home Premium 64-bit SP1
                  AMD Turion X2 RM-70 2GHz, 4GB RAM
                • Henrik
                  Thank you Stefan, I found it starts with : Looping Liberty BASIC provides three constructions for looping. One is FOR/NEXT another is WHILE/WEND, and the third
                  Message 8 of 21 , Jan 29, 2013
                  • 0 Attachment
                    Thank you Stefan, I found it starts with :
                    Looping
                    Liberty BASIC provides three constructions for looping. One is
                    FOR/NEXT another is WHILE/WEND, and the third is DO LOOP.
                     I have to study them
                    very well.
                    Thanks again Stefan for the link of searching thru html.
                     
                     


                    ________________________________
                    From: Stefan Pendl <pendl2megabit@...>
                    To: libertybasic@yahoogroups.com
                    Sent: Tuesday, January 29, 2013 1:21 PM
                    Subject: Re: [libertybasic] Re: Variable out of loop


                     
                    Am 29.01.2013 07:54, schrieb Henrik:
                    > Thank you mike, your “do”
                    > code is very interested to me…
                    >

                    Generally speaking, every loop construct has its purpose.

                    For finite loops, where you exactly know the limits FOR..NEXT is best used.

                    For loops where you don't know the end limit, but an end condition, you
                    use WHILE..WEND or DO..LOOP.

                    Everything can be found in the help file under "Liberty BASIC v4.04 Help
                    => Language Syntax and Usage => Logic and Structure => Looping Structures".

                    If you just read through the help file, you will have a brief knowledge
                    of the available commands, which will help you making better decisions
                    for what command to use in the current situation.

                    If you complain that the help file is lacking a search feature, this has
                    been taking care of already, see http://basic.wikispaces.com/HelpSearch

                    --
                    Stefan Pendl
                    http://stefanpendl.runbasichosting.com/

                    LB 4.04 Pro ... http://www.libertybasic.com/assist.html
                    LB 4.04 ....... http://www.libertybasic.com/lb404setup.exe

                    LB Community Wiki .............. http://basic.wikispaces.com/
                    LB Programmer's Encyclopedia ... http://lbpe.wikispaces.com/
                    LB Bug Tracker ................. http://libertybasicbugs.wikispaces.com/

                    Books at http://www.lulu.com/ and http://www.amazon.com/
                    Alyce Watson ... APIs for Liberty BASIC
                    Carl Gundel .... Beginning Programming with Liberty BASIC

                    Windows 7 Home Premium 64-bit SP1
                    AMD Turion X2 RM-70 2GHz, 4GB RAM



                    [Non-text portions of this message have been removed]
                  Your message has been successfully submitted and would be delivered to recipients shortly.