§7.2 执行值与循环
循环关联其他语句是指
其他语句在循环外,而
非循环的循环体。
所以在本节内,是使用获取
执行的值来构成循环,而
非循环内获取执行值。
在
上一章讲到了能够使用执行值来检测实体的数量,
在此,我们可以进一步规定选择器的范围,来
检测玩家数量n,
并输出n个say 1:
按照顺序执行:
- /scoreboard players set @e[name=f] a 0
- /stats entity @e[name=f] set AffectedEntities @e[name=f] a
- /execute @e[name=f] ~ ~ ~ testfor @a
复制代码
*获取玩家数量执行值
- /execute @e[name=f,score_a_min=2] ~ ~ ~ say 1
- /scoreboard players remove @e[name=f,score_a_min=1] a 1
复制代码
*循环
效果:

没有输出,这是因为输出条件中玩家大于两个
将其改成/execute @e[name=f,score_a_min=1] ~ ~ ~ say 1
不断输出,这是因为循环关联的
stats不断更新,因此for循环1次被无限循环嵌套,最终得到无限循环。
分析:
正如上面所说的,在循环模块中需要
注意单次执行和多次执行的区别,(以后讲解单次执行的方法)
否则循环和决定循环的条件值都多次执行,循环就会被嵌套,如上得到了无限循环。
接着掺杂了一点时钟,因为循环条件修改条件,所以此处考虑
先循环还是先执行循环体(这里明显需要先执行循环体)
不纠结单次执行和多次执行的问题,就目前关联语句来看,
执行值与循环也的确有兼容性,只是要注意执行的问题。
附加部分
练习: