- 欢迎加入官方Discord和Telegram群组!
- 我们正在删除政治内容页面,还您一个干净的H萌娘,净化社区的同时也可以让您认真学习和讨论性知识(?
- 不知道接下来该看什么?可以去查阅本站的优质条目
- 如果您在H萌娘上发现某些内容错误/空缺,请勇于修正/添加!编辑H萌娘其实很容易!(由于遭到破坏,自动确认用户外的编辑现在会先审核 )
- 有任何意见、建议、求助都可以在 讨论版 提出!
模板: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}}
結果:5151
示例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}}
結果:75750
示例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@
與解析器函數的替換[編輯原始碼]
本模板的參數與#loop
略有不同,你可以通過一下方法快速替換:
- 將
#loop:
替換為subst:loop/auto|
。 - 點擊「保存更改」。
例子[編輯原始碼]
替換過程中進行的更改以粗體標註。
- 若有使用
#loop
的代碼如下:- {{#loop:i|5|10|{{#var:i}}<br/>}}
- 將
#loop:
替換為loop/auto|
:- {{subst:loop/auto|i|5|10|{{#var:i}}<br/>}}
- 點擊保存,原內容被替換為
{{#invoke:loop|main|i=5|14|do=<nowiki>{{#var:i}}<br/></nowiki> }}