for (roll option): Difference between revisions

From RPTools Wiki
Jump to navigation Jump to search
No edit summary
m (Text replacement - "<source" to "<syntaxhighlight")
 
(13 intermediate revisions by 9 users not shown)
Line 1: Line 1:
{{stub}}
{{stub}}
===FOR Option===
{{RollOption
|name=for
|version=1.3.b46
|description=Executes a statement for a number of iterations based on a start and end value.


'''Introduced''': Version 1.3.b46
|usage=
<syntaxhighlight lang="mtmacro" line>
[for(var, start, end): body]
</syntaxhighlight>
<syntaxhighlight lang="mtmacro" line>
[for(var, start, end, stepsize): body]
</syntaxhighlight>
<syntaxhighlight lang="mtmacro" line>
[for(var, start, end, stepsize, separator): body]
</syntaxhighlight>
'''Parameters'''<br>
The {{code|var}} variable counts from {{code|start}} towards {{code|end}} during the loop, and the optional {{code|stepsize}} (default {{code|+1}}) is added to {{code|var}} at each iteration.  Note that in the standard incrementing usage with a {{code|stepsize}} of {{code|1}}, the {{code|body}} does not execute when {{code|var}} reaches {{code|end}}. <br>
Note that {{code|stepsize}} must be integer and not 0. Floating values will be rounded down.<br>
{{code|list_separator}} default value is {{code|","}}. Some examples of other useful separators: ''nothing'' {{code|""}}, ''space'' {{code|" "}} and ''break'' {{code|"&lt;br>"}}.


Executes a statement for a number of iterations based on a start and end value.
====Usage====
<source lang="mtmacro" line>
[FOR(var, start, end): body]
[FOR(var, start, end, stepsize): body]
[FOR(var, start, end, stepsize, separator): body]
</source>
The ''var'' variable counts from ''start'' towards ''end'' during the loop, and the optional ''stepsize'' (default +1) is added to ''var'' at each iteration.  Note that in the standard incrementing usage with a ''stepsize'' of 1, the ''body'' does not execute when ''var'' reaches ''end''.
====Example====
<source lang="mtmacro" line>
[FOR(i,0,10): "i is now " + i]
</source>


|examples=
<syntaxhighlight lang="mtmacro" line>
[for(i,0,10): "i is now " + i]
</syntaxhighlight>
Counts up from 0 to 9.
Counts up from 0 to 9.


<source lang="mtmacro" line>
<syntaxhighlight lang="mtmacro" line>
[FOR(i,10,0,-2): "i is now " + i]
[for(i,10,0,-2): "i is now " + i]
</source>
</syntaxhighlight>
Counts down even numbers from 10 to 2.


<syntaxhighlight lang="mtmacro" line>
[for(i,10,-1,-2): "i is now " + i]
</syntaxhighlight>
Counts down even numbers from 10 to 0.
Counts down even numbers from 10 to 0.


===Version Changes===
|also=
{{change|1.3b54|Changed the comparison operator when comparing the ''var'' to ''end'' when determining whether to continue executing a new iteration.  In b53 and earlier, on each iteration it compared if ''var'' was less than or equal to ''end''.  As of b54, it is now comparing if ''var'' is less than ''end''.  See the forum's [http://forums.rptools.net/viewtopic.php?f=27&t=7677|bug thread] for discussion.}}
{{roll|foreach}},
[[Introduction to Macro Loops]]


|changes=
{{change|1.3b54|Changed the comparison operator when comparing the {{code|var}} to {{code|end}} when determining whether to continue executing a new iteration.  In version 1.3b53 and earlier, on each iteration it compared if {{code|var}} was less than or equal to {{code|end}}.  As of version 1.3b54, it is now comparing if {{code|var}} is less than {{code|end}}.}}
}}
[[Category:Roll Option]]
[[Category:Roll Option]]
[[Category:Looping Roll Option]]
[[Category:Looping Roll Option]]

Latest revision as of 20:50, 14 March 2023

 This article is a stub, you can help the RPTools Wiki project by contributing content to expand this article.

[for():] Roll Option

* Introduced in version 1.3.b46

Executes a statement for a number of iterations based on a start and end value.

Usage

[for(var, start, end): body]
[for(var, start, end, stepsize): body]
[for(var, start, end, stepsize, separator): body]

Parameters
The var variable counts from start towards end during the loop, and the optional stepsize (default +1) is added to var at each iteration. Note that in the standard incrementing usage with a stepsize of 1, the body does not execute when var reaches end.
Note that stepsize must be integer and not 0. Floating values will be rounded down.
list_separator default value is ",". Some examples of other useful separators: nothing "", space " " and break "<br>".

Examples

[for(i,0,10): "i is now " + i]

Counts up from 0 to 9.

[for(i,10,0,-2): "i is now " + i]

Counts down even numbers from 10 to 2.

[for(i,10,-1,-2): "i is now " + i]

Counts down even numbers from 10 to 0.

See Also

[foreach():], Introduction to Macro Loops

Version Changes

  • 1.3b54 - Changed the comparison operator when comparing the var to end when determining whether to continue executing a new iteration. In version 1.3b53 and earlier, on each iteration it compared if var was less than or equal to end. As of version 1.3b54, it is now comparing if var is less than end.