循环语句结合条件语句将会涉及到
- 建立时钟
- 时钟中条件语句
- 判断条件
- 终止循环
§5.1 循环中条件语句
5.1.0 区别
虽然循环自身也是条件语句,但是与循环区别的是,
此处条件语句在循环体之中。
如果说循环是一层条件,那么这里条件属于嵌套条件。
循环与条件语句结构:
进一步分析:
/scoreboard players add @p[score_a=5] a 1
/execute @p[score_a=5] ~ ~ ~ say 1
/execute @p[score_a=5] ~ ~ ~ /execute @p[score_b_min=1] ~ ~ ~ say 2
构成了一个循环,
(使用/scoreboard players set @p a 1设定初值开始循环5次)
其中:
/scoreboard players add @p[score_a=5] a 1
为循环基础,维持循环进行。
/execute @p[score_a=5] ~ ~ ~
为循环体基础判定,后缀则是循环中的输出。
say 1
/execute @p[score_b_min=1] ~ ~ ~
都是循环中输出,但是say 1直接输出,而后者则又是一个条件判断,
say 2
是循环中/execute @p[score_b_min=1] ~ ~ ~ 条件判断的输出。
↑得到循环中的结构关系。(如果在第四章没弄懂的此处可以理解)
5.1.1 输出关系
使用上面的指令。
- 输出与条件
当我预设b为1,那么会一直输出。
在最后新增一个指令方块:
- /execute @p[score_a_min=3] ~ ~ ~ scoreboard players set @p b 1
那么在执行第3次时,将b设为1,那么就会有输出。
(构成简易时钟,关于具体是什么,咱么下篇讲解)
- 执行顺序
在上面的例子里,我们在最末加入,也就是最后执行,显然已经过了输出say 2的时辰。所以后来设b为1,没有本轮say 2的输出。
从第四次循环开始,才有say 2输出。
然而:
将
- /execute @p[score_a_min=3] ~ ~ ~ scoreboard players set @p b 1
放在
/execute @p[score_a=5] ~ ~ ~ /execute @p[score_b_min=1] ~ ~ ~ say 2
前
那么从第三次循环就有输出了。
这就是顺序的重要性,他影响时序和输出,若操作不当可能会造成延误。
- 建立一个循环20次的高频,当循环15次后一直输出say 1;
- 自己实践循环和条件语句,结合教程。