# 循环语句for
输入:
~~~
{% set data = ['one': 1, 'two': 2, 'three': 3] %}
{% for value in data %}
Value: {{ value }}<br>
{% endfor %}
~~~
输出:
~~~
Value:1
Value:2
Value:3
~~~
输入:
~~~
{% for name, value in data %}
Name: {{ name }} Value: {{ value }}<br>
{% endfor %}
~~~
输出:
~~~
Name: one Value:1
Name: two Value:2
Name: three Value:3
~~~
for循环与if语句连用:
~~~
{% for name,value in data if value < 2 %}
Value: {{ value }}<br>
{% endfor %}
~~~
输出:
~~~
Value:1
Value:2
~~~
for循环与else/elsefor连用(当data中的元素个数为0时,else/elsefor语句将被执行)
用法示例:
~~~
{% set data = [] %}
{% for name,value in data %}
Value: {{ value }}<br>
{% else %}
暂无内容<br>
{% endfor %}
{% for name,value in data %}
Value: {{ value }}<br>
{% elsefor %}
暂无内容
{% endfor %}
~~~
`break`break语句用于跳出循环
用法示例:
输入:
~~~
{% set data = ['one': 1, 'two': 2, 'three': 3] %}
{% for name,value in data %}
{% if name == 'two' %}
{% break %}
{% endif %}
{{ value }}
{% endfor %}
~~~
输出:
~~~
1
~~~
## 循环上下文(Loop Context)
循环上下文关键字 loop 在for循环中可用,使用它,你可以方便的进行一些判断和计数操作。 我们可以把它看做是一个循环计数器,用它来记录元素在当前循环中的位置。 loop中主要包含以下可用属性:
| 变量 | 描述 |
| :-: | :-: |
| loop.index | 当前元素在从1开始计数的循环计数器中的位置 |
| loop.index0 | 当前元素在从0开始计数的循环计数器中的位置 |
| loop.revindex | 当前元素在逆向从1开始计数的循环计数器中的位置 |
| loop.revindex0 | 当前元素在逆向从0开始计数的循环计数器中的位置 |
| loop.first | 是否是循环中的第一个元素 |
| loop.last | 是否是循环中的最后一个元素 |
| loop.length | 循环中的元素个数 |
用法示例:
`loop.index`
输入:
~~~
{% set data= ['a','b','c'] %}
{% for value in data %}
{{ loop.index }}
{% endfor %}
<br />
{% for value in data %}
{{ loop.index0 }}
{% endfor %}
<br />
{% for value in data %}
{{ loop.revindex }}
{% endfor %}
<br />
{% for value in data %}
{{ loop.revindex0 }}
{% endfor %}
~~~
输出
~~~
1 2 3
0 1 2
3 2 1
2 1 0
{% set data = [['id':0,'name':'a'],['id':1,'name':'b'],['id':2,'name':'c']] %}
{% for value in data %}
{% if loop.first %}
<table>
<tr>
<th>#</th>
<th>Id</th>
<th>Name</th>
</tr>
{% endif %}
<tr>
<td>{{ loop.index }}</td>
<td>{{ value['id'] }}</td>
<td>{{ value['name'] }}</td>
</tr>
{% if loop.last %}
</table>
{% endif %}
{% endfor %}
~~~
- 序言
- 基础
- 安装
- 规范
- 目录
- 配置
- 架构
- 入口文件
- 伪静态配置
- Facade
- 使用行为
- 路由
- 路由定义
- 控制器
- 定义控制器
- 数据库
- 连接数据库
- 链式操作
- where
- builder
- field
- limit
- page
- order
- group
- find
- select
- value
- count
- sum
- average
- maximum
- minimum
- column
- update
- insert
- delete
- begin
- rollback
- commit
- left
- right
- inner
- for_update
- shared_lock
- cache
- 构造器
- 查询
- 添加
- 更新
- 删除
- 模型
- 创建模型
- 自动时间戳
- 模型关联
- 模型事件
- 数据转换
- 软删除
- 视图
- 模板
- 日志
- 调试
- 验证
- CLI命令行
- 标准
- 命名规范
- 语法规范
- 注释规范
- 设计模式
- 开发提示
- 数据字典
- Markdown使用文档
- volt模板引擎
- 简介
- 注释
- 变量
- 过滤器
- 流程控制
- 循环语句for
- 条件判断语句if
- 表达式及运算符
- 函数