天才一秒记住【第一中文网】地址:www.dyzww.cc
execute---A----------b
------------↓
---------A——b
---------↓
------A——b
游戏按照顺序,再次以A为执行者运行指令,并解析了第三个『execute @e ~~~』,得到了上面的结果。
execute---A----------b
------------↓
---------A——b
---------↓
------A——b
------↓-----↓
------c-----d
第三个execute运行指令,产生了新的盔甲架c和d。
execute------A----------b
---------------↓
---------A————b
---------↓---------↓
--------+2---b—A—c—d
游戏回到第二层execute,以目标选择器顺序选取b为执行者,由于之前已经生成了c和d,所以b运行第三层execute指令时,会选取到4个实体来运行指令,最终实体数量+4(现在为8=2+2+4)。
execute---A-----------------b
------------↓-----------------↓
----------+6----b—A—c—d—E—F—G—h
游戏回到第一层execute,以目标选择器顺序选取b为执行者。由于已经有了八个实体,因此这一次第二层execute会选取到八个实体来运行第三层execute。
execute---A-------------------------b
------------↓-------------------------↓
----------+6----b——A——c——d———E———F———G———h
-----------------↓-----↓-----↓-----↓-------↓-------↓-------↓-------↓
--增加实体数---+8--+16--+32-+64--+128--+256---+512--+1024
--增加后数量----16---32---64---128----256---512----1024---2048
随后,游戏按照顺序依次以这八个实体运行指令,实体数量在此过程中快速增长,最终变为2048。
不难发现,每一次第三层的execute指令被运行,都会将当前实体数量x2,而上面一共运行了10次第三层的execute,相当于2被乘以了10次2,也就是2x2x2x2x2x2x2x2x2x2x2,即2的11次方,结果为2048,即2048个实体。
实在是太令人惊讶了是不是?在Java1.13以下的execute指令中,execute仅仅会在被选取的执行者开始执行指令时才会进行下一步的解析动作,而且不会一下子就将所有执行者运行指令的情况全部解析出来再运行指令。
所以,Java1.13对execute的改动不仅仅是格式上的,还有运行流程上的改动。
如果你并不能很好理
本章未完,请点击下一章继续阅读!若浏览器显示没有新章节了,请尝试点击右上角↗️或右下角↘️的菜单,退出阅读模式即可,谢谢!