本帖最后由 贰逼 于 2015-7-16 20:20 编辑

循环语句
下一页为 for循环模拟机械赋值
循环语句也是模块中的一个重要指令
它用于不断执行某些指令
从而让指令不断输出。


循环语句将会涉及到
基础
  • 与计分板关联

无限循环与while循环
  • 判断条件
  • 终止循环

for循环
  • 判断次数
  • 终止循环

for循环模拟机械赋值
全索引链接
上一篇(for循环 )--下一篇(循环中条件语句)

§4.2 for循环模拟机械赋值
大家都应该是知道Minecraft中某些参数不能使用计分板进行赋值
但是由于for将计分板值转化成了执行次数,所以对于某些执行参数可以使用for进行机械赋值(一般用实体中介给坐标赋值)。

例如给f的a设置计分板变量,
而f的坐标处相对向上放置a个红色羊毛。

你也许可以想到:
/execute @e[name=f] ~ ~ ~ fill ~ ~ ~ ~ ~a ~ wool 14
然而MC不能进行坐标的赋值。

因此可以转化为for:
a>=1 →
/tp @e[name=f] ~ ~1 ~
/execute @e[name=f] ~ ~ ~ setblock ~ ~ ~  wool 14
a--


指令如下:


按照顺序执行:
  1. /execute @e[name=f,score_a_min=1] ~ ~ ~ setblock ~ ~ ~ wool 14
  2. /execute @e[name=f,score_a_min=1] ~ ~ ~ tp @e[name=f] ~ ~1 ~
  3. /scoreboard players remove @e[name=f,score_a_min=1] a 1
复制代码

效果:



分析:
执行次数就是a的分数,
让a的分数通过递减来转换成循环的次数,
同时执行指令操作,
完成机械赋值。


标准赋值格式:
/execute <=1 赋值输出1
/execute <=1 赋值输出2

/execute <=1 赋值输出n
*赋值输出
赋值关键指令(例如tp)
*增加分数/停止循环
/scoreboard players add @e[实体选择,score_计分板=指定分数] 计分板 1

*循环次数是 分数 次
[groupid=546]Command Block Logic[/groupid]