00:00
好,下面呢,我们复习一下昨天讲的这个内容啊,还是咱们打开咱们的这个叫eary,呃文档,然后呢,Java基础编程里边基本语法,呃,打开我们这个流程控制,那昨天的话呢,咱们就将整个这个循环结构呢,就算是说完了啊,然后流程控制呢,相当也就是讲完了啊。那我们来复习一下。嗯,然后我们该呢,该写这个叫Y循环了,这个while循环,Do while循环包括for循环,是我们Java规范的三种循环结构,那么只要是一个循环结构呢,都一定会有这样的四个要素。诶,不光是Java语言如此哈,任何一个编程语言呢,只要是有循环结构,都会有这样的四个部分,那这个大家注意一下啊,那么for循环呢,之前咱们已经说过了啊,就是这样的一个结构,执行的顺序呢是这样,那我们下面来复习一下这个while循环和do while循环这块的话呢,咱们把咱们昨天写的这个代码呢调出来。CODE05。哎,这个排列方式呢,按照类型把它呢删掉。
01:01
诶,这块我们选中,然后打开一下。哎,行,正好最后一个是我们的while啊,那首先呢,关于这个while这个结构,这个大家呢,是需要掌握的,这个没有任何的含糊啊,这个结构呢,如果你要都记不清楚的话呢,肯定是写不了。哎,它的一个摆放顺序跟我们这个for呢,是有一点区别的行。那么执行过程的话呢,跟咱们这个for循环是完全一样的。啊,CTRLC一下我们粘过来完全的一样。那么这个for循环和我们这个while循环的话呢,大家在呃这个使用的过程当中,尤其是我们这个while循环哈,呃for的话呢,它一个萝卜一个坑比较清晰,但我们这个while写的时候呢,大家很容易把这个四呢就给丢了。比如说呢,我们便利一下,100以内的偶数,你很容易呢,在这里边广记着呢,去这个输出偶数了,忘了让我们这个爱加加啊,真的就出来一个死循环了,所以这里边儿我们的说明呢,就是。呃,大家呢,写这个外循环的时候呢,千万不要丢了这个迭代条件啊,一旦丢了那就出现死循环了。
02:05
哎,这个大家一定要小心一点啊,这是我们说的这个问题。然后下边的话呢,我们关于这个for和well呢,做一个总总结,按说的话呢,我们是讲完do well再总结啊为啥放在这总结呢?因为咱们在开发当中呢,实际上基本上选择的都是for和while循环。呃,这呢,我们写的是其中的第一个点啊,就是实际这个开发中,呃,基本上。哎,我们呢,都会从这个for循环,或者呢,是咱们这个while循环当中进行选择啊。哎中进行选择,然后实现这个循环结构。哎,我们用do while循环用的相对来讲还是比较少的。还是比较少的啊,这是我们说的是这样一个事情,然后接下来呢,咱们提到了一个for和while呢,咱们是可以相互转换的,而且这个转换呢,没有任何说这个不流畅的地方哈,诶前面呢,我们讲这个三元讲E讲Switch case。
03:03
E file这个我简写了啊,三元运算符,咱们说呢,三元一定可以转换成e file Switch case呢也同样如此,但是呢,不是所有的e file都可以转成三元,或者呢,所有的E都可以转换成这个three case,这个是不一定的。但是对于咱们循环来讲,我们的for循环和咱们的哎while循环,它们呢,是一定可以相互转换的。啊,就这四个部分呗,就是放的位置不同而已啊,这个大家要注意。好,这是咱们说的这个事情啊,他们一定是可以相互转换的,那区别在哪呢?就是我们这里边儿提到的这个叫初始化条件。那Y循环这个一写在外面了,然后放在写里边,除了for呢一就用不了了,而这个呢是可以的,就是有这样的一个微小的区别啊,大家关注一下。嗯,这是这个事情,那么既然他们可以相互转换,可能有的同学就会问,那到底开发当中咱们用for写的多,还是用while写的多,或者说呢,我到底写循环该用哪一个?
04:03
呃,咱们刚才只说了从这俩里选这个把它排除了,但是呢,呃,这两个里边到底谁用的多呀,这个得具体问题具体分析。啊,就这句话说完以后呢,感觉很欠揍是吧,说这个跟没说一样,那真实的话呢,大家其实可以这样子来去考虑哈,这个也得结合我们后边讲的这个内容。就是我们如果后期呢,去便利一个像数组哎,像字符串哎等等的结构呢,通常咱们会选择用for,因为写着呢会更舒服一点。但是呢,你仍然可以给它改成用well。这是没有问题的啊,那么什么时候会用会用这个while呢?大家想咱们这个一呢叫初始化条件。这个初始化条件呢,写到for里边呢,这个位置通常都不会太复杂。比如说我们定义一个变量是吧,定义两个变量,哎,你写到这个for里边就可以了,但是你要是这里边写的逻辑非常复杂了,调用很复杂的这个结构和方法,那你这个for写起来就非常难看,这个写的很多,其他的又比较少,头重脚轻就看着就不舒服啊,所以呢,如果说初始化条件这块比较复杂的话呢,我们通常呢,就会选择用这个while循环来实现。
05:12
啊,只是一个经验之谈啊,呃,那结论上的话就是其实他俩呢,用谁都可以。大家呢,如果还是有点懵的话呢,就不用着急了,后边的咱们讲到的时候呢,再说啊,你到时候呢,一写就有体会了。行,那第三个点的话呢,就是我们写程序的时候呢,大家要避免出现死循环。哎,这是咱们要规避的这个点啊。这个不能,这个写完代码以后呢,写这个死循环啊,就不停的去练这个死循环,那越练越多啊,越写越熟,那死循环呢,就掌握了是吧?哎,咱们是要避免的啊,你就别老是写死循环了,别老是去练了啊。练完以后呢,这个出现死循环了。嗯,这是我们说的这个while循环啊,到此为止,下面叫do well循环。多少循环找到咱们这个结构。那在这呢啊do要循环呢,也是一个循环,所以它呢一定也会有这样的四个部分,这是没毛病的,关键呢,就是我们看到它这四个部分的摆放位置呢,比较特别,那一完以后呢,先三四后二,所以它的执行过程呢,也区别于另外的两种。
06:14
诶诶在这啊,我们把它那CTRLC一下。这里边儿呢,我们讲课的时候也提到了哈,他至少呢会执行一次三和四。至少会执行一次,就一上来的话呢,先嗯,初始化条件完了以后呢,上来就三三后四,然后再判断二。哎,是这样的啊,就是按照咱们写程序来讲呢,感觉挺别扭的啊,咱写的时候呢,大家也看到过了,诶我们要输出质数呢,输出这个奇数和偶数呢,先输这个执行输出,后边呢再判断它是不是一个奇或者是一个偶。呃,不是,哎,到后边这块我们再判断它是不是小于,比如100是吧,就看着有点别扭哈。嗯,那实际上这种写法的话呢,挺符合这个西方人,或者说这个英语系的这个一个习惯。呃,这个大家也都学过英语啊,你看英语当中咱们说一个事,比如说我明天呢要去学英语,就啊I will啊,这个study,这个English,然后tomorrow。
07:11
啊,就最后呢,说出一个时间来,或者说呢,再举个例子说啊,I will。I,什么呢?I will marry you啊,说我要嫁给你啊,这一听呢,很兴奋啊,结果后边来个问。啊,这就崩溃了,说当你是高富帅的时候。啊,这一下就没戏了。哎,所以这个英语里边呢,他还把这个问呢,写到这个后面啊,啊写到这后面,咱们这个中国人说话的话从不这样,咱们呢就上来呢,先把这个事说完,然后再说啥说他是吧,说当你有一天变成高富帅的时候呢,我就嫁给你,哎就感觉这个逻辑很清楚啊,这个英语跟咱们相反。包括还有一个像咱们中国这个经典的一句啊,这个爱情的一句话叫山无棱,天地合,乃敢与君绝。是吧,呃,当这个呃,山都没有棱棱角了,天和地都合在一起的时候呢,我才跟你分手啊,其实言外之意就是说不分手嘛,哎,咱们上来说当当什么时候,其实就相当于是问了,所以咱们呢,会先把问写上边。
08:10
啊,但是你要是这个用英语来写,那成啥了,说我要和你分手啊,说问什么什么什么。啊,这个你想最后才说,这要一上来呢,两个人本人关系挺好了,一上来想说一个情话,结果一上来说我要和你分手,结果那个刚听完以后,咔嚓,这个跳河了,这个问的机会都没有了是吧。呃,这开个玩笑哈,就是说白了就是说这个写法呢,跟这个英语系的这种习惯相关哈,所以他把while呢写后边,咱们呢看着写的别扭一点,所以咱们通常呢,也都不会用这个读表循环啊。行,这是它的一个执行过程,呃,下面关于它的一个说明就是说哎,Do well呢,循环至少会执行一次,诶开发中呢,这个用的多,这个用的少,诶行,这个呢,很清楚啊,就不多说了。那下一个呢,叫无限循环,这个你看我无限循环,我加了个双引号,它并不是真的无限循环。
09:00
啊,真的无限循环,那不就是死循环吗?只是说呢,从形式上来看呢,它像是一个无限循环。哎,这就是我们选的这样的结构,Well true,哎,或者呢,咱们写成这个for这样的这个方式。哎,这样就可以了啊。嗯,后续的话呢,咱们在开发当中,呃,可能会写到就是如果呢,你不知道这个循环明确的一个循环的条件是什么,执行的次数是多少的时候呢,可以就写成这种方式。包括呢,咱们后期看系统的源码的时候呢,也会看到这样的这个结构啊,大家呢,清楚会用就OK了,在下面的话呢,我们提到说如何去结束一个循环结构。在这个里边呢,我们提到用break了,那综合来讲呢,就是咱们考试呢,出的第一道题,那第一种方式呢,我们就是当这个循环条件哎不满足时压呢,就是返回false的时候啊。或者这样明确说吧。当循环条件这个。是false时。哎,我们呢就退出了,那这是我们典型的一种方式啊,方式二的话呢,就是在循环体中,哎,这个呢,我们执行break。
10:09
哎,他呢,就跳出循环。这个呢,我们就完事啊,这是咱们说的这样结束循环的两种方式。哎,不多说了,在下面的话呢,我们提到一个概念叫做嵌套循环,这个嵌套循环呢,我们说不是一个新知识了,只是说呢,我们在一个循环里边又写循环这种结构呢,看着比较复杂了,所以咱们单独的给大家拿出来了,讲了讲啊。那首先呢,是关于这个签到循环,它的一个算是一个概念啊。将一个循环结构A生命在另一个循环结构B当中的循环在B的循环体中,就构成了嵌套循环。哎,那这自然而然有了这个以后呢,我们就有一个叫内层循环。然后有一个外层循环。哎,这是两个这个名词啊,就两个概念,哎,就是我们这是一个循环,放在另外一个循环这个结构当中了,那它呢,就是内。
11:04
哎,然后我们这个呢,就是一个Y,那如果说你在这个外边呢,又放了一层循环,这就三层循环了啊,那三层循环的话呢,那么中间这一层呢,相较于外层来讲,它就变成一个内了,而它呢就成一个外了,是一个相对的概念。哎,这个应该很好理解啊,就相当于呢大家,呃,相相较于你你爸啊,你是儿子是吧,但是你爸呢,相较于你爷爷呢,他又是儿子了。啊,就是这是一个相对的概念啊。行,那这个清楚以后呢,我们总结出来了几条使用上的一个规律哈,呃,把这个呢,我们都给他拿过来CTRLC一下。哎,粘到我们这个说明的位置上。哎,把这个技巧呢,我也写成一个三辣椒啊。这呢是咱们说的关于嵌套循环的一个具体使用。哎,这块呢,大家注意一下我们这里边总结的这样的一个知识点啊,像这呢,咱们提到说两层循环呢,呃,外层M4,内层N次,一共是M乘N次,那如果要是三层循环,这个大家呢,这个推理一下也能够推出来三层循环,我比如说最外层呢,执行M次,哎中间这一层执行N次,最里边这一层呢,执行K次,那么一共到底执行多少次呢?那就是M乘以N再乘以K次了。
12:24
啊,就剩这么个情况啊。行,这个呢,大家应该也能够去推论出来,行,不多说了,这个实际咱们在开发当中呢,用这个三层啊。就很少很少了啊,三个以上那基本上就没见过。啊,就没见过。下边呢,关于这个两层嵌套循环呢,典型例题,诶咱们上课也都讲了,这呢,这是最简单的一个哈,哎,这个行跟列呢,这个书都一样,稍微复杂一点呢,就咱们下边这个三角形的这个形状,这个我就粘一个就行啊,下边这个就不粘了,哎,给大家做一个代表就行。哎,这呢,算是咱们这个。哎,这个叫练习一。
13:06
哎,这是练习一,然后下边这个呢是练习二,比我们刚才上边这个呢,稍微呢,就复杂这一点啊。然后呢,这两个完了以后,下边呢,我们还做了两个典型的题目。哎,练习三咱们做了一个叫九九除法表。哎,乘法表。这个这个乘法是吧,然后呢,最后呢,咱们又写了一个这个题目啊叫练习四这个输出呢,比如说100或者1000都可以啊以内的质数。哎,又做了一个这样的一个题目啊。嗯,那第四道题呢,显然这个难度呢,就要大很多了。哎,大家呢,如果第一开始关于质数这道问题呢,你做的不太好,或者说呢,这个想了半天呢,也做不出来这个题呢,大家就放一放啊,不用着急的话呢,这个讲到这儿的时候呢,一定要把它这个写出来啊。
14:06
就是如果呢,大家看半天你写不出来,并不意味着说你这个循环结构呢,不会用啊,这个大家要理清楚哈,也就是说呢,关于我们现在啊这个。嗯,做一道这个小的问题啊,那么这个问题的话呢,其实我们把它呢,应该剖析成两方面。啊,就是如何去理解咱们这个流程控制的这个练习。呃,这个大家呢,应该把它看成两方面啊,一方面呢,就是关于这个流程控制这个结构的一个使用。就大家呢,相当于你懂不懂一个懂不懂一个Switch case或者for while循环。看这是一方面啊,另外一方面呢,就是我们的叫算法逻辑。就是你这个题能不能做出来,是取决于两方面的能力,那多数情况下呢,大家都是这个算法逻辑呢没搞定。啊,像你这个100以内的这个质数输出,你这个逻辑呢,没整明白,这里边儿呢,确实有一些难度是这块不行了,但并不意味着呢,大家这个流程控制呢不会用。
15:04
咱们后边开发的时候呢,其实多数情况下呢,用的流程控制都比较简单直接啊,都比较简单直接,所以说呢,这个大家呢,这块掌握住就可以往后走了啊,这个关于这个算法问题也有很多同学都去都问哈,说一方面呢,觉得算法很高端啊,很高大上啊,自己也想学,然后说呢,这个用不用单独的现在花时间去研究算法。啊,要说的结论呢,就是不用。啊,不用,就是咱们现在讲课呢,会讲到很多的这个逻辑,也会涉及到很多的算法,我讲到什么呢,大家就看什么,就学什么就行了。哎,一点点这样去积累,你用不着单独的去研究这个算法啊。啊,用不着单独去研究这。这是我们说的这个问题。然后呢,借着这个四的话呢,咱们这个有几种不同的优化哈,优化完以后呢,你会发现最后的这个时间比这个最初没有优化呢,差出来很多倍,诶通过这个呢,咱们这个写一个这个。
16:01
经验啊,就我们如何去衡量一个功能代码的优劣呢?对吧,如何去衡量它的优劣呢?我这呢列几个点啊,首先呢,我们先得保证你这个功能代码的功能呢是正确的。所以第一个点呢,叫做正确性。如果这个正确性呢,你都不能保证的话呢,那剩下的就别聊了啊,就别谈了。就像咱们说一个人一样哈,呃,这个我先这个聘大家,比如说聘到你到一个公司里边,首先呢,你这个人呢,得是一个靠谱的人。啊,你这个价值观得是正确的啊,这个忠于党忠于人民的,如果这个你都保证不了,你再有能力的话呢,那也这个白扯是吧,或者说呢,你要是价值观都不对的话呢,你越有能力反正是越危险啊这样的一个情况,所以第一个呢,要保证它的正确性。那第二的话呢,哎,我们呢,要保证它的什么呢,叫做可读性。哎,可读性就是你的代码呢,写的是正确的,但是呢,除了你能看得懂之外,所有人都看不懂啊,也改不了是吧,那这个呢就不行啊,这个不能说证明你这个能力很强哈,呃,你能力再强的,按说也有别人这个,这个应该是可以读得懂你的代码的是吧?别人都读不懂的话呢,那只能证明这个呢就不具备可信度。
17:15
啊,就像咱们说证明一个定理一样啊,你证明一个定理,然后呢,呃,大家呢都认可了,那才是个证明,说说明呢是正确的,如果大家都不认可,也看不懂,那他就不认为这个是具有可信的。啊,这叫做一个可读性哈。嗯,这块呢,多说一下,你像这个呃,区块链啊,大家应该知道一八年区块链呢是比较火的。啊,一八年的时候啊,嗯,区块链火的话呢,不不是咱们光谈的那个币圈啊,炒比特币啊,那是一个资本的这个炒作方面的,呃,真是落地的话呢,这个区块链确实有它的具体的应用场景,那在区块链当中其实就涉及到大量的算法啊,尤其是像这个共识算法。具体实现方面呢,其实有很多呢,是用到一些数学的公式和公理,需要做论证的啊,像这个这个之前一八年的那一段时间呢,我带着咱们之前那个区块链班的同学呢去,呃叫幸运链,是咱们国内数一数二的一个公链啊呃去参观呃,他们那里边呢,几个做技术的人都是就跟他们交流的这几个人啊,都是在国内读完清华以后,呃去美国读的MIT,呃或者加州,然后又回来的啊就是他们技术肯定是很强,但是呢,就这样的话呢,他们还要聘专门的这个数学家。
18:27
然后去这个做一些论证。啊,论证了你这个是正确的以后呢,他们才可以再去用啊,否则的话呢,你要出现问题那会很麻烦的啊。哎,就是这个可读性正确性,这个呢是很关键的啊呃,第三个点呢,咱们关注的叫做健壮性。哎,这个健壮性呢,咱们在一开始讲Java语言的时候呢,提过啊叫健壮,这个相交于C语言来讲啊,有个健壮性了。嗯,也就是呢,比如说咱们大家搭了一个这样的一个草房子是吧,搭完以后的话呢,我这一脚踢下去呢,它就塌了,这就显然呢,这个健壮性就很差。
19:01
啊,那就相当于你这个搭的草房子,就类似于你写了一个代码一样,啊,这个代码的话呢,经不住这个考验,那就说明它的健壮性不好。哎,这叫健壮性,举个例子哈。像咱们昨天写的这个项目当中,呃,咱们就一项呢,叫做登记你的收入,再一个呢叫登记你的支出,呃,登记收入的话呢,正常来讲,这个用户填的都应该是大于零的一个整数了。但是你不排除用户写的就是个,比如说我写了个负200。啊,那正常来讲,其实你应该把这种情况呢,给用户呢,就是判断出来,不让他这样去写。呃,咱们那个代码里边没有加啊,你要加上的话呢,像这个就让你的代码呢,就更具有健壮性。哎,再包括咱们之前说过,让大家记住,说是某年某月。某日啊,是当年的第多少天?呃,这个咱们写月份的时候呢,比如我写了零一月,呃用户这个时候呢,他最多呢是写到31,你不能让他写三十二三十三这样的情况,这呢都啊你你去,呃让用户呢,必须满足要求的,这样的数据的输入,不满足的话呢,重新输入或者报错,呃像这种情况呢,你都得给他考虑在内啊,这呢就是保证它的健壮性。
20:10
啊,健壮性后边呢,咱们写代码的话呢,会经常看到这样的情况啊,有的时候呢,我们没有经过一个非空的判断,就会导致这个程序呢,就报错了,这都是这个间状性方面的一个体现啊。那如果说你也正确了,也是可可动性也很好,大家也能看得懂,兼容性也很好,那这时候呢,其实就是一个合格的或者比较不错的代码了。那在接下来呢,诶,我们就得衡量一下,大家呢,都满足这三个特征,那到底谁好谁坏呢?诶我们呢,这里边提到一个叫高效率。哎,与叫低存储。诶,高效率与低存储,高效率呢,指的是时间上呢,就是越快越好。那低存储呢,就是你额外使用的这个存储空间呢,越少越好,这呢其实呢,就反映了我们这个,呃,在数据结构当中啊,讲的两个概念啊,一个呢叫做时间复杂度,呃,另外一个呢,叫做空间复杂度。
21:07
就是效率这块呢,我们用时间复杂度来衡量,空间呢这块呢,呃,这个低存储这块用空间复杂度来衡量啊。这个我们是衡量一个算法的好坏的一个标准啊。哎,好坏。哎,时间复杂度和空间复杂度,这两个的话呢,其实我们更关注的是谁呀。哎,更关注的呢,其实是这个叫时间复杂度。啊,为什么呢?因为这个空间的话呢,如果我们不足的话呢,你可以额外的再添加这个内存,或者是这个这个硬盘的这个存储空间啊,这都是可以的,本身这个硬盘这种存储空间的价格呢,也不贵啊。但是时间这块呢,我们就很关注了啊,尤其像现在这个信息爆炸的这个时代啊,数据量这么大,我们更关心的这个速度一定要快的去计算出来,大家时间都很紧嘛,是吧,越快越好诶,所以我们更多的是关注于这个时间复杂度。
22:05
啊行,这个大家呢就清楚。这是我们说的这个问题啊。然后后边呢,关于这个break和continue关键词的使用,这个咱们考试的时候也考了,这个大家呢也都得掌握啊,就是我们这个问题CTRLC粘过来。啊,这个结构有点乱了啊。好,这个呢,把它往前面调一下啊。这呢是我们说的这个break和continue,诶后边呢,咱们现在又补充了一个内容。哎,就提到了我们说叫带标签的,哎,这个break和continue的使用。诶,这两个呢,虽然咱们开发中用的比较少,但是大家呢,也关注一下啊,是也是有机会写到的。
23:02
这是咱们说的这个break和continue,后续呢,关于这个return这个关键字呢,咱们讲到方法的时候呢,再说啊再。哎,方法中。讲方法的时候呢,我们去讲它啊。那这呢,就是咱们昨天讲的这个知识点啊,后续呢,咱们又做了一个项目,呃,这个项目的话呢,咱们是做的这个项目一。哎,做的这个项目一了啊。呃,关于项目这块呢,咱们是这样子的哈,就是大家呢,呃。咱们先讲课,讲的课当中呢,是有很多这个叫新知识的啊,咱们这个项目当中呢,是没有这个新知识的。哎,不含这个新知识的,相当于我们去知道啊,咱们讲的这个知识呢,在这个项目当中,或者叫案例当中啊,怎么去用应用啊,这里边是不含新新知识的,那他的点是什么呢?他这个逻辑就更复杂了,前面呢,咱们写个练习题,可能呢,这个十几行20行就可以搞定了,那我们的项目当中呢,可能出现。这个几百行甚至呢上千行的代码,呃,主要呢,就是需要大家通过写这个这个项目啊,去强化你的逻辑能力,同时呢,你知道咱们这个知识呢,在开发当中到底应该怎么去应用。
24:13
虽然说不包含新知识,但是呢,对于大家来讲非常重要。呃,所以大家呢,下来以后呢,关于这个项目呢,一定要写熟,第一遍写不好写两遍,两遍不好写三遍,三遍不好写四遍。啊,就是当你一旦认真的时候呢,世界都为你让路是吧?诶这个呢,一定要多写几遍啊,其实呢,你写着写着你会发现没有大家没有想象的那个那么困难啊。哎,这里边儿又不含新知识了啊。呃,同时的话呢,就是当大家呢,就是把你这个项目写的很熟的时候呢,回过来你再看当初我们讲知识的时候写的那个代码,你会发现其实挺low的。啊,或者不能叫low了啊,就是呃,逻辑结构呢,你感觉很清晰,就是因为呢,大家通过不断的去写这个项目呢,其实你的这个认知能力啊就提升了。啊,认知能力就提升了,这个能力呢,是一种算是一种比较虚的一种一种一种一种能力吧,认知能力提高以后呢,你在解决比他这个简单的一些问题的时候,其实学起来会更快一些。
25:10
啊,更快一些。其实这个你要说为什么说这个清华北大的,或者这个名校的这个学生,他学东西为什么快呢。呃,或者说那个人家读完这个名校以后呢,再出来,大家同样的去学编程,为什么人家学起来会快一些呢?就是因为呢,他之前经历过大量的训练啊,高考能够考的不错是吧?呃,他能够解决更多的难题,他的认知能力其实提高了。那他在回过来学编程就是一些比较难度低一点的一个问题的时候呢,你会发现他上手很快,这就因为认知这个原因在这导致的啊,所以大家呢,多去写这个代码啊,就是多去写这个项目,这个是吧,当你把这个逻辑呢,更复杂的掌握以后呢,其实认知能力不知不觉的就提升了。啊,就这样个情况啊。好,这呢是咱们这个复习的内容。
我来说两句