00:00
好,那我们接着继续来学习编程的后续部分。那这已经不是基础了,应该是进阶了啊,应该是进阶了。那我们后面还有一些和脚本编程相关的一些技术。我们在之前呢,已经给大家讲到for循环这个阶段了,For循环第一种语法我们已经讲过了,这是第一种语法。它的这个循环是for,后面跟上一个变量的名称。然后在后面跟上一个硬。以及这个是它的单词的个数啊,有几个单词,将循环多少遍。当然,如果这个单词这没有写怎么办呀。如果这没有写硬呢?没有写硬,大家知道怎么回事吗?
01:06
好,那我这写个for for IE我不写了,度上打印,打印到了A。A等于。好,然后我们这个for循环后面正常应该跟个变量再个印是吧,我这空了,那空了的话,那这是啥意思呢。那就是这意思。知道啥意思了吧?那意思是说,如果你这为空,那么这个列表将自动的从后面的参数中来读。那实际上刚才我们看到官方的说明,这实际上就有,如果这个硬word没有写,他认为是从哪读到at Dollar at不就是啊咱们说的那个参数,一个一个的所有参数吗。
02:15
对吧。就这么来的,不过这个用的不多啊啊知道就行,知道有这种写法。好,那么负循环。用这种格式,这后面跟着这个列表有几个将循环即变。那事实上或循环还有另外一种语法。这种语法更适合用C语言的同学,C语言同学比较适,就是比较熟悉的风格是这种风格,这个风格在S8的官方文档里面是没有写的,当然这个里面没有写。SS7的帮助里面它是有的,就是这种格式。
03:02
那这种格式是这样的啊,For后面跟上两个小括号。然后中间再跟上三个表达式。那么最终它实现的效果是什么效果?最终的效果是这样的。好,那我们来看一下它最终实现的逻辑是什么啊。那for循环我们刚才写了一个for循环的这样的一个格式是for小括号,然后这里面有EXP1分号,EXP2括号,EXP3分号。
04:05
啊,这个没有封号啊。啊,这个,然后后面跟上一个度啊这呢写一个指令,当然这个指令可以好多。然后再来个道。再来个大,那么它最终这个for循环。他的逻辑上,他是怎么执执行的。你看这儿。不。就这这是他的语法啊,这是他的语法要求啊,Come,那么最终它实现的效果是这样的,我把这个官方的这个贴在这儿吧。那么最终实现的是这样的。刚开始先执行EXP1。先执行这个,执行完这个以后,不论这个命令返回的结果是成功失败,那么接着去执行ESP2,但是ESP2呢,是要关注他的成功失败的。
05:11
成功,我们就执行循环。Command。啊,成功。那成功执行谁呢?执行。Come on。这不有循环吗?那这个是处的情况下,就是这个命令返回帧的时候才会执行command,执行完commands以后,无论成功的执行还是失败的执行,他都要去接下来执行。EXP3。那这个呢,就不分什么成功失败了,执行执行完EP3以后,翻过头来再去。
06:06
执行EPR。再去判断叶片是否成功。那如果成功了,继续执行,这不就构成了一个循环了吗?当然,同样道理,如果是失败了。这就结束了。大家看懂了吗?这就是他背后的。循环逻辑啊,循环逻辑。这就是他实现的一个第二种语法,那么第二种语法呢,它这里面写的ESSP1P2P3是算术表达式啊算术表达式,那也就是说你直接在里面就可以写加减乘除。啊,算术表达式。那算术表达式呢,比方说我们之前写的这个从一加二加三加到100,现在我们用新的写法呢,就可以换成另外一种格式了啊,用新的第二种语法来写,第二种语法怎么写呢?嗯,就得换成这种格式来写。
07:18
那。看怎么写啊。好,我们写一个计算总和,这个用for来写,不过呢,这回用的是for的第二种语法来写。第二种语法来写错小括号。然后我们从A等于一开始,A小于等于100 a加加,然后let吧,S加等A,然后E口。
08:06
S等于到三,那么在前面呢,你可以做一个初始化,S等于零啊,跑一下出来了吧,啊,这就是一个新的写法,新的格式。现在不上。啊,当然这种格式呢,你也可以用别的写法来实现啊。呃,我看我这有没有那个旧的那个就是新格式的写写法,那这有这有这我刚才画过图了,这是之前写过的,然后这这个写法呢,也可以换成这种格式啊,你看我把这个三放到里面也行。这里面放在这也可以啊,甚至我们还可以把这个加加也放到这个最后也可以,也就是说我换成另外一种写法。啊,就是我在这个地方,甚至我都可以把这个三个表达式。
09:05
有两个都放在这儿,这不要了。这个地方直接写成零逗号,所以这时候呢,就是这是两个表达式,但是它作为一个整体执行。然后这个执行完了以后,判断它条件是不是成立不成立啊,那就循环结束,成立了,那我就接着执行循环体,但这个循环体我也可以把它加到里面去,循环体我甚至都可以加到这里面来,叫S加等I逗号,那这样的话,这中间就不用写东西了。但是不写东西空着行不行,空着不让写,那你也得填点东西啊,填点东西填啥呀。啊,随便填个吧,永远为真的啥也不干。出来了吧。啊,就是占占位置的,但实际上啥也没干啊,啥也没干处是吧,就是真猛。
10:04
这种写法啊,也可以。所以这个将来面试问你说从一加二加三加100,你可以提供五六种方法了吧。是吧,啊,再出这种题,你给他写上五六种啊。啊,你看咱们之前写的那个九九乘法表,九九乘法表也可以用这种新格式来写九九乘法表,那大家想想九九乘法表用新的后循环格式怎么写?九乘999乘号表负A啊这个小括号。I是从一开始,呃,I到哪结束啊,这等于九啊,就是小于十也行是吧,小于十不就是小于等于九嘛,啊,然后I加加,那这个I是干嘛用的呀?是打一行的,是不是我们九九乘法本九行嘛,我们最外层这个循环是负责打行的啊先把这个说清楚,那么你光打一行,那么每一行是不是有好几个公式,所以里面再嵌套一个小的,再来个循环,这个循环是不是要负责打列列是不是咱们用另外一个变量啊一那这个勾应该到哪就结束。
11:41
小于等于I吧,嗯。因为我们说每一行里面公式的个数就等于行,就是公数的个数就等于当前的行号,比方说我们是第六行,那是不是就六个公式?那第七行就七个公式,所以最多也就到A了。
12:01
啊,最多到A。然后分号I勾加加,当那中间这个打。要打印出来,并且要做计算,当然你可以把它先算出来啊,算出来一个值。算出来一个值,比方说是结果result。那这个结果是怎么算出来的?那Dollar中括号或者是小括号也行,然后是谁呀,是。当前的行号乘以谁是乘以当前的列。当前的列,然后得到的结果,这不就是那个乘积吗啊。那乘积乘完了以后,我们是不是要把它打出来,当然那个数字应该是怎么个形式啊,先是行号,先是行号还是先是列号。
13:11
啊啊,这个九九乘法表啥样啊啊,实际上无所谓,反正是就你现在我们说一下吧,九乘九乘法表我看看啥样啊,就这个样子,呃,那一第一个数字是就是一,那这个是列吧是吧,第一个数字是列,第二个就是横,第二个是横,所以第一个是列,列的话呢,我们刚才说了,列是用呃用勾来表示的,勾来表示的是吧?所以它是不是就是Dollar勾。然后这个呢,要乘到A,但是直接这么写不行吗?是不是得画画括起来啊,不画括起来,它认为这个X就当成一个和它混在一起了,分不清了是吧,算出来结果是多少,是不是就是result。
14:08
这不就行了吗?但是这个还不换行吗?不换行我们怎么不让它换行来着?呃,有一个杠C可以不换行,杠T是吧?呃,杠T是加那个table键隔开,杠C是不换行,然后还得杠E。要不它识别不了那种斜杠什么东西的,然后这个做完以后,这一行打完是不是得补个二行。是这意思吧?好看,看出来没有。出来聊。你看就是新的一个循环写法啊,无非就是格式啊,换了换最终效果一样啊,效果一样。好,那上次呢,呃,咱们学过了for循环,那这边呢,还有一些那个。
15:06
嗯。有意思的写法啊,比方说写一个什么国际象棋棋盘之类的。国际象棋棋盘,国际象棋棋盘啥样啊?就是横格、纵格国际象棋。国际象棋棋盘,国际象棋棋盘就这个样子。你看国际象棋棋盘就是黑白,黑白或者白黑,白黑分夹杂着色,总共有八个格,八行八列,总之不同颜色要交错竖线。真的。那么不同颜色交错出现。那这边呢,哎,看看有写好的啊。
16:06
Bell。不是这个。脚本儿。S。这有。你看,这是象棋。两车拖过来。得先下来。嗯。都在这儿来。这个也可以。好,那把这两个呢,传到另一个去。啊,你看看这样出来了啊,但是你要不喜欢这个颜色,换别的颜色,这不象棋吗?但是有点小气了,再大点。
17:05
好是不好啊,怎么编出来的循环呀啊,你自己想吗?你怎么编啊,你不看代码你都能想出来。是吧,怎么编出来的这个东西也没什么难的啊。你看这不就好循环吗?啊。那这里面这就用到了函数了,后函数我们后面讲啊,函数后面讲,但是也是报循环,看到没也是报循环,是不是C语言风格的报循环。看啊,但是这个颜色你可以改啊。
18:00
啊,这边还有一些有意思的,比方说像国国企国企。国旗啊,看看这个国旗是咋回事,国企。啊,有点偏了,国企这可能和那个分辨率有关系啊,分辨率有关系,国企这心都偏了。
19:01
还有这个三角形等腰三角形,这个等腰三角形,等腰三角形是这样的啊,比方说十。十就是十行,你看等腰了吧。等腰三角形,而且颜色还花里胡哨,现在这里面就是放循环,看见没就是循环啊,你们下来可以琢磨琢磨啊,怎么实现的?呃,还有圣诞树。圣诞树。
20:06
圣诞树圣诞树。这个打社。啊,你看这个圣诞树。这都是咱们以前同学写的啊,花哨吧啊,虽然这个脚本挺烂的啊,是的,你看写的什么玩意啊,这缩进都成成什么了啊,但是他确实实现了,不管怎么样吧,实现了,所以这个写代码有的时候就这样看着表面挺划哨,一打开代码呀,真是没法看,所以好多程序员写代码啊,写的很烂,但是不管怎么样,功能实现就行了呗。
21:05
环循环啊,这里面大量的用了for循环啊,全是for循环。啊,所以相信大家啊,这个破循环你就可以做好多事了。哎,是不是你们至少得考虑写一个这个吧,象棋这个能写出来不象棋你不要开代码自己想啊,这实际上是考你考验你的这个数学逻辑的,那for循环的格式很简单,但是你要写不了这个大格,写小格,这个大格实际上更为复杂一点,因为大格实际上它是怎么打出来的,实际上是这么打出来的,先把这个,这是打了一个,这是打了八个格,八格以后呢,这才打了,打了一点点,然后呢,把这一层打完,还得循环四次才能把这个第一行才第一个大个才打出来。因为它这个实际上是四行,你看一行两行,三行,四行,四行才把这一个大行才打出来,所以它循环次数要更多,明白吧,但实在不行,你写这个嘛,这个简单吧,这个实际上就是两个空格啊,这是两个空格,所以这个有的同学那个怎么打,打这个空格啊,这个东西是怎么打出来的。
22:24
这这个颜色怎么打出来的呀,这也不是字啊,字的话咱们打颜色,这不是字啊,空格空格哎,实际上是加了个背景色,背景色,背景色是40几,比方说43 43应该是黄的吧。是吧,空格斜杠E0M。呀。有点多了,呃,43少了一个中号。
23:07
你看这不就行了吗?你这俩空格这不就是黄的出来了。那41是红色嘛,就红色背景嘛。能看明白了吧,是这么来的,就是打背景色,不是字体颜色。哎,所以你们下来可以自己写一个好玩的东西了。练一练啊,主要是练这个脚本的写法,练一下脚本的写法啊,就用乘法表啊,等腰三角形啊,我这都有案例啊,我这都有案例,这都写好了,等腰三角形看。啊,另外呢,这还可以生成进度,哎,这个挺有意思,看这个啊,这个挺好的,这个命令很酷的感觉,看啥。
24:07
看到没有,100%,100%的进度出来了。这数字在不断变。当然这个地方要用到纯F了。Print f这个4D3D这啥意思呀。啊,这个D啊,有用啊,比方说你写成二,你看见没有,他就往后跑了,在这个是有原因的啊,这必须是4D。那这个4D是什么意思?这个print f,咱们之前给大家说过print f在编脚本的时候,在一些复杂格式下是要用到print f的。在这。Print f呢,它的用法实际上有有些很多用法,跟咱们那个Apple是一样的,是和Apple是一样的啊,它的可以格式化,那么这个。
25:11
D呢?实际上是print f和A中都支持的一个写法啊。在哪呢?在这我们之前讲那个eo的时候,有一些高级用法,大家可以来回顾一下啊。那么A口呢?在这找找A口,A口的高级用法。你看这里面就有D,找找D啥意思,看到没有,光标左移N,这应该是N力啊,应该是力,光标左移N列,左边N列那4D就是移四列。一四列啊,大家看为什么是四列呢?因为你打到百分号了,这不就第四了吗?你左一四列是不是就回到顶顶头去了。哎,所以这就是你要缩少了,那他就往后不断的跑了,你看三它就往后跑了看。
26:07
因为我们要在原地打,所以我们打完了以后还要再回去,所以就4D看到没。四点。因为你每次打是不是都要往后走,默认那打完了再回去嘛,这不就成了原地打印了。所以这个都是很有意思的写法啊。但是这里面就循环了100遍是吧。循环了100遍。啊。那这边实际上用到的就是eo中的一些写法了。啊,一些想法。这个eo的用法还是挺丰富的啊,它可以定位它的光标位置,直接移,能移到哪个地方去,这都可以的。好了,这是给大家讲的这个for循环。
27:09
那for循环这个写法呢?嗯,怎么说相对来讲它通用性要弱一些,因为它的格式里面是这么来约定循环次数的,要么你这写一个算术表达式,要么你就写一个元素的个数。那这个呢就很有局限性,有的时候我们循环不一定有和算术有关。而且呢,也不一定有固定的列表,我也不知道这个列表是什么,和列表无关,和算术表达式无关的循环怎么办呀?比方说我就根据今天的天气好坏。那天好坏和这个列表没关系啊,天气好坏和这个算数也没有关系。
28:03
今天天气好,我来上课,天气不好,我不来上课。那这是不是后循环,好像就没法表达这个事儿。对吧,啊,然后。根据这个来决定是否循环。所以for循环它相对来讲没有特别强的这种通用性,它是有条件的,要么就是算术表达式,要么就是列表。所以更有通用性的是,我们下面要给大家讲的是另外一种循环,叫什么呢?叫外耳循环啊。外循环,它更有通用性。好了,他怎么用,咱们下午再说,好吧,上午的课咱们上到这儿下课。
我来说两句