模組:Loop/doc
跳至導覽
跳至搜尋
此頁面為 Module:Loop 的說明文件
簡介
該模塊可以循環執行語句。相較於解析器函數,因為使用Lua模塊進行循環,所以沒有100次上限的限制。
用法和功能與{{loop}}類似,但可以處理模板的接收參數(也即被三對大括號包裹的參數,如{{{1}}}
)
用法
注意:
- 第一層循環的代碼需要用
<nowiki>
標籤包裹。 - 多層循環中內層循環的代碼不需要
<nowiki>
標籤包裹。
- loop
{{#invoke:loop|main| 自增/减变量名 = 初始值 | 最大值 | 自增/减量 |do= <nowiki> 循环执行的代码... </nowiki>}}
main
亦可作loop
、for
。- 使用自增/減變量的寫法為:
{{#var:变量名}}
,如:{{#var:time}}
。 - 默認的自增/減量在初始值小於最大值為1,在初始值大於最大值時為-1。
- while/dowhile
{{#invoke:loop|while| condition = <nowiki>循环条件</nowiki> |do= <nowiki> 循环执行的代码... </nowiki>}}
{{#invoke:loop|dowhile| condition = <nowiki>循环条件</nowiki> |do= <nowiki> 循环执行的代码... </nowiki>}}
- fornumargs
{{#invoke:loop|fornumargs| 变量名前缀 | 索引变量名 | 值变量名 |<nowiki> 循环执行的代码... </nowiki>}}
- 具體使用方法可參考Help:魔術字/解析器函數#循環中的相關介紹。
示例
示例1
{{#vardefine:count|0}}<!-- -->{{#invoke:loop|main|time=1|101|do= <nowiki>{{#vardefine:count| {{#expr: {{#var:count}} + {{#var:time}} }} }}</nowiki> }} 结果:{{#var:count}}
結果:5151
示例2
{{#vardefine:count|0}}<!-- -->{{#invoke:loop|main|time1=1|5|do=<nowiki> {{#invoke:loop|main|time2=1|100|do= {{#vardefine:count| {{#expr: {{#var:count}} + {{#var:time1}} * {{#var:time2}} }} }} }} </nowiki>}} 结果:{{#var:count}}
結果:75750
示例3
{{#invoke:loop|main|time=1|5 |do=<nowiki> {{#expr:{{#var:time}} + {{{1|0}}} }}{{{split|、}}} </nowiki> }}
1、2、3、4、5、