<?xml version="1.0"?>
<?xml-stylesheet type="text/css" href="http://wiki.mcselec.com/bavr/skins/common/feed.css?303"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
		<id>http://wiki.mcselec.com/bavr/index.php?action=history&amp;feed=atom&amp;title=FOR-NEXT</id>
		<title>FOR-NEXT - Revision history</title>
		<link rel="self" type="application/atom+xml" href="http://wiki.mcselec.com/bavr/index.php?action=history&amp;feed=atom&amp;title=FOR-NEXT"/>
		<link rel="alternate" type="text/html" href="http://wiki.mcselec.com/bavr/index.php?title=FOR-NEXT&amp;action=history"/>
		<updated>2026-06-03T00:40:24Z</updated>
		<subtitle>Revision history for this page on the wiki</subtitle>
		<generator>MediaWiki 1.18.6</generator>

	<entry>
		<id>http://wiki.mcselec.com/bavr/index.php?title=FOR-NEXT&amp;diff=661&amp;oldid=prev</id>
		<title>Admin: Created page with &quot;= &lt;span class=&quot;f_Header&quot;&gt;Action&lt;/span&gt; =  Execute a block of statements a number of times.  &lt;span style=&quot;font-family: Arial;&quot;&gt;&amp;nbsp;&lt;/span&gt;  &lt;span style=&quot;font-family: Arial;&quot;&gt;...&quot;</title>
		<link rel="alternate" type="text/html" href="http://wiki.mcselec.com/bavr/index.php?title=FOR-NEXT&amp;diff=661&amp;oldid=prev"/>
				<updated>2013-02-11T17:06:18Z</updated>
		
		<summary type="html">&lt;p&gt;Created page with &amp;quot;= &amp;lt;span class=&amp;quot;f_Header&amp;quot;&amp;gt;Action&amp;lt;/span&amp;gt; =  Execute a block of statements a number of times.  &amp;lt;span style=&amp;quot;font-family: Arial;&amp;quot;&amp;gt; &amp;lt;/span&amp;gt;  &amp;lt;span style=&amp;quot;font-family: Arial;&amp;quot;&amp;gt;...&amp;quot;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;New page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;= &amp;lt;span class=&amp;quot;f_Header&amp;quot;&amp;gt;Action&amp;lt;/span&amp;gt; =&lt;br /&gt;
&lt;br /&gt;
Execute a block of statements a number of times.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;font-family: Arial;&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;font-family: Arial;&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= &amp;lt;span class=&amp;quot;f_Header&amp;quot;&amp;gt;Syntax&amp;lt;/span&amp;gt; =&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span class=&amp;quot;f_Syntax&amp;quot;&amp;gt;FOR&amp;lt;/span&amp;gt;&amp;amp;nbsp;var = start&amp;amp;nbsp;&amp;lt;span class=&amp;quot;f_Syntax&amp;quot;&amp;gt;TO&amp;lt;/span&amp;gt;&amp;amp;nbsp;end [&amp;lt;span class=&amp;quot;f_Syntax&amp;quot;&amp;gt;STEP&amp;lt;/span&amp;gt;&amp;amp;nbsp;value]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;font-family: Arial;&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;font-family: Arial;&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= &amp;lt;span class=&amp;quot;f_Header&amp;quot;&amp;gt;Remarks&amp;lt;/span&amp;gt; =&lt;br /&gt;
&amp;lt;div style=&amp;quot;padding: 0px; margin: 0px 0px 0px 4px;&amp;quot;&amp;gt;&lt;br /&gt;
{| width=&amp;quot;601&amp;quot; cellspacing=&amp;quot;0&amp;quot; cellpadding=&amp;quot;1&amp;quot; border=&amp;quot;1&amp;quot; style=&amp;quot;border: 2px solid rgb(0, 0, 0); border-spacing: 0px; border-collapse: collapse;&amp;quot;&lt;br /&gt;
|- style=&amp;quot;vertical-align: top;&amp;quot;&lt;br /&gt;
| valign=&amp;quot;top&amp;quot; width=&amp;quot;17%&amp;quot; style=&amp;quot;width: 98px; border: 1px solid rgb(0, 0, 0);&amp;quot; | &lt;br /&gt;
var&lt;br /&gt;
&lt;br /&gt;
| valign=&amp;quot;top&amp;quot; width=&amp;quot;85%&amp;quot; style=&amp;quot;width: 494px; border: 1px solid rgb(0, 0, 0);&amp;quot; | &lt;br /&gt;
The variable counter to use&lt;br /&gt;
&lt;br /&gt;
|- style=&amp;quot;vertical-align: top;&amp;quot;&lt;br /&gt;
| valign=&amp;quot;top&amp;quot; width=&amp;quot;17%&amp;quot; style=&amp;quot;width: 98px; border: 1px solid rgb(0, 0, 0);&amp;quot; | &lt;br /&gt;
start&lt;br /&gt;
&lt;br /&gt;
| valign=&amp;quot;top&amp;quot; width=&amp;quot;85%&amp;quot; style=&amp;quot;width: 494px; border: 1px solid rgb(0, 0, 0);&amp;quot; | &lt;br /&gt;
The starting value of the variable var&lt;br /&gt;
&lt;br /&gt;
|- style=&amp;quot;vertical-align: top;&amp;quot;&lt;br /&gt;
| valign=&amp;quot;top&amp;quot; width=&amp;quot;17%&amp;quot; style=&amp;quot;width: 98px; border: 1px solid rgb(0, 0, 0);&amp;quot; | &lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
| valign=&amp;quot;top&amp;quot; width=&amp;quot;85%&amp;quot; style=&amp;quot;width: 494px; border: 1px solid rgb(0, 0, 0);&amp;quot; | &lt;br /&gt;
The ending value of the variable var&lt;br /&gt;
&lt;br /&gt;
|- style=&amp;quot;vertical-align: top;&amp;quot;&lt;br /&gt;
| valign=&amp;quot;top&amp;quot; width=&amp;quot;17%&amp;quot; style=&amp;quot;width: 98px; border: 1px solid rgb(0, 0, 0);&amp;quot; | &lt;br /&gt;
value&lt;br /&gt;
&lt;br /&gt;
| valign=&amp;quot;top&amp;quot; width=&amp;quot;85%&amp;quot; style=&amp;quot;width: 494px; border: 1px solid rgb(0, 0, 0);&amp;quot; | &lt;br /&gt;
The value var is increased/decreased with each time NEXT is encountered.&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;span style=&amp;quot;font-family: Arial;&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;div style=&amp;quot;padding: 0px; margin: 0px 0px 0px 11px;&amp;quot;&amp;gt;&lt;br /&gt;
{| border=&amp;quot;0&amp;quot; cellpadding=&amp;quot;0&amp;quot; cellspacing=&amp;quot;0&amp;quot;&lt;br /&gt;
|- valign=&amp;quot;baseline&amp;quot; style=&amp;quot;vertical-align: baseline;&amp;quot;&lt;br /&gt;
| width=&amp;quot;13&amp;quot; | &amp;lt;span style=&amp;quot;font-size: 10pt; font-family: 'Arial Unicode MS', 'Lucida Sans Unicode', Arial;&amp;quot;&amp;gt;•&amp;lt;/span&amp;gt;&lt;br /&gt;
| For incremental loops, you must use TO.&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;/div&amp;gt;&amp;lt;div style=&amp;quot;padding: 0px; margin: 0px 0px 0px 11px;&amp;quot;&amp;gt;&lt;br /&gt;
{| border=&amp;quot;0&amp;quot; cellpadding=&amp;quot;0&amp;quot; cellspacing=&amp;quot;0&amp;quot;&lt;br /&gt;
|- valign=&amp;quot;baseline&amp;quot; style=&amp;quot;vertical-align: baseline;&amp;quot;&lt;br /&gt;
| width=&amp;quot;13&amp;quot; | &amp;lt;span style=&amp;quot;font-size: 10pt; font-family: 'Arial Unicode MS', 'Lucida Sans Unicode', Arial;&amp;quot;&amp;gt;•&amp;lt;/span&amp;gt;&lt;br /&gt;
| For decremental loops, you must use a negative step size.&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;/div&amp;gt;&amp;lt;div style=&amp;quot;padding: 0px; margin: 0px 0px 0px 11px;&amp;quot;&amp;gt;&lt;br /&gt;
{| border=&amp;quot;0&amp;quot; cellpadding=&amp;quot;0&amp;quot; cellspacing=&amp;quot;0&amp;quot;&lt;br /&gt;
|- valign=&amp;quot;baseline&amp;quot; style=&amp;quot;vertical-align: baseline;&amp;quot;&lt;br /&gt;
| width=&amp;quot;13&amp;quot; | &amp;lt;span style=&amp;quot;font-size: 10pt; font-family: 'Arial Unicode MS', 'Lucida Sans Unicode', Arial;&amp;quot;&amp;gt;•&amp;lt;/span&amp;gt;&lt;br /&gt;
| You must end a FOR structure with the NEXT statement.&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;/div&amp;gt;&amp;lt;div style=&amp;quot;padding: 0px; margin: 0px 0px 0px 11px;&amp;quot;&amp;gt;&lt;br /&gt;
{| border=&amp;quot;0&amp;quot; cellpadding=&amp;quot;0&amp;quot; cellspacing=&amp;quot;0&amp;quot;&lt;br /&gt;
|- valign=&amp;quot;baseline&amp;quot; style=&amp;quot;vertical-align: baseline;&amp;quot;&lt;br /&gt;
| width=&amp;quot;13&amp;quot; | &amp;lt;span style=&amp;quot;font-size: 10pt; font-family: 'Arial Unicode MS', 'Lucida Sans Unicode', Arial;&amp;quot;&amp;gt;•&amp;lt;/span&amp;gt;&lt;br /&gt;
| The use of STEP is optional. By default, a value of 1 is used.&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;span style=&amp;quot;font-family: Arial;&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
When you know in advance how many times a block of code must be executed, the FOR..NEXT loop is convenient to use.&lt;br /&gt;
&lt;br /&gt;
You can exit a FOR .. NEXT loop with the EXIT FOR statement.&lt;br /&gt;
&lt;br /&gt;
&amp;amp;nbsp;&lt;br /&gt;
&lt;br /&gt;
It is important that the if you use variables for START and END, that these are of the same data type. So for example:&lt;br /&gt;
&lt;br /&gt;
Dim x, as byte, st as byte, ed as byte&lt;br /&gt;
&lt;br /&gt;
FOR x = st TO ED ' this is ok since all variables are of the same data type&lt;br /&gt;
&lt;br /&gt;
&amp;amp;nbsp;&lt;br /&gt;
&lt;br /&gt;
Dim x as Byte, st as Word, Ed as Long&lt;br /&gt;
&lt;br /&gt;
FOR x = st TO ED ' this is NOT ok since all variables are of different data type.&lt;br /&gt;
&lt;br /&gt;
&amp;amp;nbsp;&lt;br /&gt;
&lt;br /&gt;
The reason is that when the condition is evaluated, it will create a compare on 2 bytes, while you actually want to have a word since the end variable is a word.&lt;br /&gt;
&lt;br /&gt;
&amp;amp;nbsp;&lt;br /&gt;
&lt;br /&gt;
A for next loop with an integer has an upper limit of 32766 and not 32767, the maximum value that fits into an integer.&lt;br /&gt;
&lt;br /&gt;
This is done in order to save code space. Checking an overflow from 32767 to -32768 would cost extra code.&lt;br /&gt;
&lt;br /&gt;
&amp;amp;nbsp;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;nbsp;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;nbsp;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;nbsp;&lt;br /&gt;
&lt;br /&gt;
There are also other alternatives. You can use a Do.. Loop for example&amp;amp;nbsp;:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;font-family: Arial;&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;font-style: italic;&amp;quot;&amp;gt;Dim Var As Byte&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;font-style: italic;&amp;quot;&amp;gt;Do&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;font-style: italic;&amp;quot;&amp;gt;'code&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;font-style: italic;&amp;quot;&amp;gt;&amp;amp;nbsp;Incr Var&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;font-style: italic;&amp;quot;&amp;gt;Loop Until Var = 10&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;font-family: Arial;&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
There are various way to get the result you need.&lt;br /&gt;
&lt;br /&gt;
&amp;amp;nbsp;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;font-family: Arial;&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= &amp;lt;span class=&amp;quot;f_Header&amp;quot;&amp;gt;See also&amp;lt;/span&amp;gt; =&lt;br /&gt;
&lt;br /&gt;
[[EXIT|EXIT FOR]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;font-family: Arial;&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;font-family: Arial;&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;font-family: Arial;&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= &amp;lt;span class=&amp;quot;f_Header&amp;quot;&amp;gt;Example&amp;lt;/span&amp;gt; =&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;source lang=&amp;quot;bascomavr&amp;quot;&amp;gt;&lt;br /&gt;
'-----------------------------------------------------------------------------------------&lt;br /&gt;
'name : for_next.bas&lt;br /&gt;
'copyright : (c) 1995-2005, MCS Electronics&lt;br /&gt;
'purpose : demo: FOR, NEXT&lt;br /&gt;
'micro : Mega48&lt;br /&gt;
'suited for demo : yes&lt;br /&gt;
'commercial addon needed : no&lt;br /&gt;
'-----------------------------------------------------------------------------------------&lt;br /&gt;
 &lt;br /&gt;
$regfile = &amp;quot;m48def.dat&amp;quot; ' specify the used micro&lt;br /&gt;
$crystal = 4000000 ' used crystal frequency&lt;br /&gt;
$baud = 19200 ' use baud rate&lt;br /&gt;
$hwstack = 32 ' default use 32 for the hardware stack&lt;br /&gt;
$swstack = 10 ' default use 10 for the SW stack&lt;br /&gt;
$framesize = 40 ' default use 40 for the frame space&lt;br /&gt;
 &lt;br /&gt;
Dim A As Byte , B1 As Byte , C As Integer&lt;br /&gt;
 &lt;br /&gt;
 &lt;br /&gt;
For A = 1 To 10 Step 2&lt;br /&gt;
Print &amp;quot;This is A &amp;quot; ; A&lt;br /&gt;
Next A&lt;br /&gt;
 &lt;br /&gt;
Print &amp;quot;Now lets count down&amp;quot;&lt;br /&gt;
For C = 10 To -5 Step -1&lt;br /&gt;
Print &amp;quot;This is C &amp;quot; ; C&lt;br /&gt;
Next&lt;br /&gt;
 &lt;br /&gt;
 &lt;br /&gt;
 &lt;br /&gt;
Print &amp;quot;You can also nest FOR..NEXT statements.&amp;quot;&lt;br /&gt;
For A = 1 To 10&lt;br /&gt;
Print &amp;quot;This is A &amp;quot; ; A&lt;br /&gt;
For B1 = 1 To 10&lt;br /&gt;
 Print &amp;quot;This is B1 &amp;quot; ; B1&lt;br /&gt;
Next ' note that you do not have to specify the parameter&lt;br /&gt;
Next A&lt;br /&gt;
End&lt;br /&gt;
&amp;lt;/source&amp;gt;&amp;lt;br/&amp;gt;{{Languages}}&lt;br /&gt;
&lt;br /&gt;
[[Category:BASCOM Language Reference]]&lt;/div&gt;</summary>
		<author><name>Admin</name></author>	</entry>

	</feed>