模板:Loop

出自H萌娘
跳至導覽 跳至搜尋
Template-info.svg 模板文檔  [查看] [編輯] [歷史] [刷新]

簡介[編輯原始碼]

該模板可以循環執行語句。相較於解析器函數,因為使用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略有不同,你可以通過一下方法快速替換:

  1. #loop:替換為subst:loop/auto|
  2. 點擊「保存更改」。

例子[編輯原始碼]

替換過程中進行的更改以粗體標註。

  1. 若有使用#loop的代碼如下:
    {{#loop:i|5|10|{{#var:i}}<br/>}}
  2. #loop:替換為loop/auto|
    {{subst:loop/auto|i|5|10|{{#var:i}}<br/>}}
  3. 點擊保存,原內容被替換為
    {{#invoke:loop|main|i=5|14|do=<nowiki>{{#var:i}}<br/></nowiki> }}