居正Lv.10
天角兽

FIM++:像写信一样编程

文
著
中
E

发表于:

5,936
21
37,017
40
0
5
72
386
20

重蹈覆辙(两个循环表达式)

第 6 章
8 年前
1565

斯派克又犯错了,暮暮罚他抄写Sorry一千遍。

(斯派克:我有一句mmp...)


OK,其实我们现在来学习的是FIM++中的循环,分为While循环和For循环,与Java中的两个循环性质相同。

两种循环语法见附录1:控制语句。

While

先来While循环举例(预备知识:附录1:补充:变量变更):

Dear Princess Celestia: I am sorry.
Today I learned:
    Did you know that Twilight likes the number 0?
    I did this while Twilight had less than 1000:
        I wrote "Sorry".
        Twilight got one more.
    That's what I did.
Your faithful student, Spike

While循环以满足条件判断循环是否进行,所以我们先定义一个变量Twilight为0,循环条件为当此变量小于1000时执行,而每次循环又将变量增加一位,直到不满足条件而跳出循环。

变量Twilight在循环中的值应该是这样的:

0,1,2,3,4,...,998,999

算一下刚好是一千次。

For

For循环与While不同的就是它循环的次数是事先约定的。

Dear Princess Celestia: I am sorry.
Today I learned:
    I did this 1000 times:
        I wrote "Sorry".
    That's what I did.
Your faithful student, Spike

不需要用到计数变量。


这两种循环可以根据需求自行选择,比如写一千次Sorry明显是用for循环比较好。然而假设你需要在“当某某变量为真”时跳出循环,反之继续操作,则会用到while。


(图片来源:https://www.fimfiction.net/story/301785/a-day-for-spike-and-twilight)