§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
前
那么从第三次循环就有输出了。
这就是顺序的重要性,他影响时序和输出,若操作不当可能会造成延误。
附加部分
前面花了十分多的笔墨来着重描述条件语句和循环语句作用,本章作为实践章也需要自己动手了
练习: