模板:Loop
跳转到导航
跳转到搜索
简介
该模板可以循环执行语句。相较于解析器函数,因为使用Lua模块进行循环,所以没有100次上限的限制。
用法
{{loop | 自增/减变量名 = 初始值 | 最大值 | 自增/减量 |do= <nowiki>
循环执行的代码...
</nowiki>}}
其中,使用自增/减变量的写法为:{{#var:变量名}},如:{{#var:time}}。
默认的自增/减量在初始值小于最大值为1,在初始值大于最大值时为-1。
注意:
- 第一层循环的代码需要用
<nowiki>标签包裹 - 多层循环中内层循环的代码不需要
<nowiki>标签包裹
由于使用{{loop}}调用时,上下文会被更改为{{loop}},因此被<nowiki>标签包裹的代码将无法正常接收模板的接收参数(也即被三对大括号包裹的参数,如{{{1}}})
如果需要使用传入的模板接收参数,可以改为直接调用模块:Loop,具体方法为:将{{loop|...}}替换为{{#invoke:loop|main|...}}。
示例
示例1
{{#vardefine:count|0}}<!--
-->{{loop|time=1|101|do=
<nowiki>{{#vardefine:count| {{#expr: {{#var:count}} + {{#var:time}} }} }}</nowiki> }}
结果:{{#var:count}}
模块:Loop第85行Lua错误:必须设置自增/自减的变量名! 结果:0
示例2
{{#vardefine:count|0}}<!--
-->{{loop|time1=1|5|do=<nowiki>
{{loop|time2=1|100|do=
{{#vardefine:count| {{#expr: {{#var:count}} + {{#var:time1}} * {{#var:time2}} }} }}
}}
</nowiki>}}
结果:{{#var:count}}
模块:Loop第85行Lua错误:必须设置自增/自减的变量名! 结果:0
示例3
当需要使用模板的接收参数时,请直接调用模块:Loop。
{{#invoke:loop|main|time=1|5
|do=<nowiki>
{{#expr:{{#var:time}} + {{{1|0}}} }}{{{split|、}}}
</nowiki>
}}
1、2、3、4、5、
若以上代码位于某模板中,则:
{{模板名称}}的结果为:1、2、3、4、5、{{模板名称|2}}的结果为:3、4、5、6、7、{{模板名称|2|split=@}}的结果为:3@4@5@6@7@