00:00
内容是这个叫什么呢?叫多重循环,那多重循环我们同学们都是,呃,都是以前都是用过的,关于这个概念我就不多说了,就是什么叫做多重循环,就是一个循环将一个循环放在了另外一个循环体,我们就将其就形成嵌套,那嵌套了就是两层的或者多层。同样呃,也有一个规则,不要超过三成,同学们,你们将来在做呃管理,你们将来一定会有很多同学啊,过了四年五年,或者有些同学成长的比较快,三年可能就会成长为项目经理,你看我以前老说中国的,中国的项目经理其实一大堆啊,那我我以前有个同学,他在有个学生,我有个学生他到日本去。他到日本去那个去做那个外包。他跟我说,我韩老师在,在日本那个工程师是特别受尊重的,为什么呢?比如说两个人。
01:02
见面一个人把这个名片拿出来,说我是一个工程师,那别人就觉得这个很厉害。对不对,现在我们在中国拿出一个工程师,这个就感觉很多,是不是我们加一个工程师,因为你们进去过后就是初级工程师。到了工作一年以后呢,他可能会给你评一个什么,这个中级或者是高级工程师,在中国没有一个,就是现在目前在国内还没有一个能够让大家认同的一个,就是软件行业里面。那个考证书,你比如说像像学英语是不是有八级啊,或者那那种证书大家都认嘛,对不对啊,这种专八呀什么的,但是在我们国内为什么现在还没有了,没有你比如像以前有个呃Java呃那个上公司搞了一个Java认证,也是大家都不认。现在国内他一般是什么呢?就是有些同学问我说老师说我们一个程序员到底值多少钱。他很难衡量。你比如说你是一个Oracle的,他Oracle它也可以考那个,你们学Oracle,你们还没学Oracle对不对。
02:06
学没学Oracle就算了,你们可能以后也不用,那么Oracle呢,他有个有三个认证,有个叫大师认证,只要那个过了,你拿把这个证书拿过去,国外的都认。国外的人,但是我们国内为什么没有呢?就是说这个人值多少钱全靠这个人什么呢?一个是能说啊,这个是很重要一个能力,第二个能力呢,就是你能拿出这个实力来证明,那有些东西是我将来只要能说就能拿到好工作的嘛,也不好混了,现在我告诉大家,软件行业基本上都是民营企业,很少有国营企业,现在的老板也变得很聪明了,因因为已经被。锻炼出来了,你知道吗?锻炼出来以前就是大家都想,现在一般人家怎么考核你啊,现在狠一点的人直接说。你也不要给我简历看都不看啊,简历稍微看一下,稍微看一下,然后你也不要不给我说了,直接怎么办呢?把你的项目代码拿出来。
03:05
拿出来,拿出来过后呢,随便挑一段代码,人家也不要你的源代码,挑一段代码,说这句话什么意思?一下就傻眼了,这个东西我也不知道,这不是我开发的呢,对吧,所以说你们去了过要有很多这个要比如说将来老师在给你们讲这个面试的时候,一定会提到一个项目,肯定你不能说我只完成一个功能,比如你们前面海波老师讲的这个,呃,电信项目,肯定我相信海波老师也不会全部讲完。可可能讲了几个模块对不对,然后讲了几个模块,你把那几个模块把它搞明白,搞清楚,然后上来过后第一句话先跟人家说,这个项目很大,我写的是这一块,先把这个给他框进去知道吧,然后别人问就说啊,你写的这块,我把这个代码拿出来,问你这张代码什么意思,一定要打上来。以后你想不拿这个东西很麻烦,比如说别人问你,你先写的东西在哪。
04:00
公司里面没拿出来,再问你写什么东西,我写了好多源代码,一一点都没拿出来,人家就不敢,都不一定相信你了,明白这意思吧。所以说同学们以后一定要养成两个一个好的习惯,第一个代码每一行的意思你们要真的要搞懂,第一个,第二个呢,还是能够表达出来这个项目的一个业务流程,很多面试官他也可能不问技术,他就问什么呢?你这个业务逻辑是怎么回事?要把它打出来,这我们这个一步流程是第一步,第二步,第三步,我们为什么这么去设计啊,把它说清楚了,别人就。会给你一个比较高的一个薪水啊,高的薪水好了,我讲到这呢,就是刚好讲到这个三层的时候,就说你们代码的规范这些大家要注意好,还有一个呢,呃,嵌套循环,这个不说了,这句话不说了,还有外层循环,如果是M,内层为N次,那么整个循环次数是M乘以N。好,这个是多重循环的一个基本介绍,那下边老师开始举例。我们开始疯狂的写代码啊。
05:02
把代码给他跑一遍。来做了一个基本的介绍,我做了什么基本介绍呢?诶,我说了有这么三点需要各位同学知道。好,老师这块就不念了啊,同学们,我就直接给大家上代码,我们来写几个案例。我不写你不一定能用,以后知道吧,我不写你不一定能用。所以有时候会出现个什么情况呢?撕开了,学完了,过手都不敢,不敢动手,不敢动手写东西来,我们这一共有123个案例,我全部给你们写完,我快速的演示一把啊,快速演示一把,呃,第一个题统计三个班。的成绩情况,每个班有五个学生,我注意看,每个一共有三个班,每个班有五个学生,要求呃,计算出每个班的平均分。每个班级的平均分和所有班级的平均分,注意现在没有没有集合,现在不不让用集合做啊,集合现在如果有集合,我们把它装到一个集合里面去,在便利集合算出来就完了,但是现在没有集合,我们要考虑怎么做,这是第一个题,第二个统计,每个统计三个班一共有多少个,呃,有多少个人这个及格。
06:18
就一共有多少个及格,第三个打出九九乘法表,就这么三个题,就这么三个题,好,那同学们老师呢,给大家把三个题写啊,后面的题就要你们自己去做了。来各位,我现在开始。来走这个多重循环的案例。好的,那现在呢,我们新建一个。包。新建一个喵。没啊。没有题,好,就这样写吧啊。好,然后呢,我们写到这里,写一个案例ex练习啊。
07:01
啊,就写一个练习就可以了,写个object,可能我会把这几个练习放在一起。好。好的,我们先写第一个题。第二个题,第三个题,那么还是我们的老规矩,同学们先不要动手,先不要动手写,先分析思路。啊,这个特别的重要,作为一个程序员最重要的就是什么呢?思路要很清晰。好,我们来分析一下,他说有三个班,每个班有五个学生,求的是平均分和所有班级平均分,那这个东西很好思考,既然你有三个班,我肯定要有个变量来保存,有几个班级的名称,说变量举说我定一个class number,保存什么呢?保存或者是表示都可以表示班级的个数。班级个数没问题,然后呢,我再请定义一个学生的NUMBER10学生number。
08:02
啊,表示学生的个数对吧,表示学生有多少个学生个数。好,呃,紧接着呢,我们再来确定。确定,因为你将来要求每个班的平均分,所以说每个班的总分你必须知道。你没有办到总分你怎么办呢?没法拿到,所以说我再写一个class。Class的这个分数表示班级。各个班级的总分。好,既然如此,那么我应该还有一个to。SC。表示什么呢?表示所有的总分,有班的总分,所有班级的总分也写完了,还有一个,因为你将来这个键盘会输入这个成绩,所以说我专门写个考,表示各个学生的成绩好写完了。
09:01
行吧,好,现在呢,我们就开始把这个定义下来,定义下来过后呢,我们用第四步还要分析出来,用循环的方式,使用循环的方式获取到,获取到或者输入输入成绩。好的,同学们快速写一下啊。那老师开始写了,首先这几个变量拿过来用number,那我先这样子啊。输出。好,来开始走一下,就是班级个数,班级个数。好吧,你告诉我,现在先定死吧,我也懒得去输入了,Class number定义为3v l student number,每个班有五个学生好分数,这个分数呢,呃,是呃,将来输入的说这段要写成R,诶,默认给他一个0.0没问题。这个是学生的分数,看啊看清楚了。
10:00
分数快速对分数好的,那么还要我们将来呢,要统计,呃,这个各个班的总成绩好,这个呢,给他一个0.0。这个肯定要变化,要累积,还有一个总分,所有班级的总分0.0写完了,开始for循环,那么你这个for循环呢,肯定是先对班级进行循环。对吧,那就说从1TWO。To Class。1TWO number。好,那么我们就提示一句话,提示一句什么话呢?请输入。请输入D这个班的。这个班。班。班级的班级,班级的D。百分号各学生的学生的成绩肯定是这样写吗?啊,那么现在呢,我把这句话包到我们这个里面去,那么你每个班有几个学生呢?吐我们的学生的个数。
11:12
好,整个包起来。啊,这个抱歉,我现在拿到这个地方,我就接收一下,为了好看,换行啊换行,然后这个班是这个班,学生是这个学生。好,大家看能不能理解,然后呢,我就接收了啊,Score等于std in。点read一个double拿到了,拿到过后不要着急,这是第几个班的第几个学生拿到了,拿到过后呢,你不要忘了先把它累积到这个class里面去,因为你将来要算平均分的。啊,这个是班级的,班级的总分。这个是所有班级的总分。所有班级的总分。你不要小看这个代码啊,如果说突然让你写,你还。
12:03
你还有时候还得想想呢。那么我们先把它统计出来,Class。Class,这个加等于。好,这样子通过一个for循环过后,同学们一个for循环是不是就把一个班搞定了,大家看能不能理解,就是因为我我是两层循环了,所以我进来一次就把一个班搞定了,那这个时候呢,我就已经可以打打印出这个班级的平均分了,第。这个班。班级的平均分,平均分为。Wait。多少呢?百分号点2F格式化一下啊,这个班级是第几个班,是第二个班,平均分是怎么算呢?好的,就是你的这个扣来干什么,除以。啊,除以这个班级的人个数完事了。好,整理一下。
13:00
这不就OK了吗?那一每个班就拿到了,那同学们我们看看这个代码有没有问题。同学们,看到我的代码有问题没有?这个代码是有问题的,有同学能告诉我哪里错了吗?有同学能看出代码哪里写错了吗?诶,对了,刚才有同学说的很正确,如果我这样去写的话,第一个班是正确的,但是第二个班就会出问题,因为你这把第一个班的评均分打出来过后,你去对第二个班的学生进行编辑的时候,他会在原先的基础上。给累积对不对,那就错了,因此这地方有个动作,先要先将什么玩意儿,先将我们的这个class时候要清零,是这意思吧,诶同学们要注意这个逻辑啊,要清零。哎,不要小看,不要小看这些,其实基本功还是很重要的,给他来一个0.0。所以老师所以说你看如果我这样进来过后,同学们会感觉很奇怪,说那老师你这已经是0.0了,为什么进来还要0.0,因为是你要考虑到一个循环的问题。
14:09
如果对于那种基础不是特别过硬的同学会可能会觉得,诶,这个老师写代码是不是有病了,把他删了,结果代码错了。他说他他说你上面不是0.0吗?怎么还负一次0.0,因为他没有动态的去看这个代码,好同学们跑一下。来,我们现在把这段代码跑起来。跑起来,那这个地方呢,我们用这个主函数啊,我就是换一个思路啊,算了,我还不玩虚的了,待会。大家本来还看得懂,一下看蒙圈了啊,我用这个主函数先包包起来啊,我还用没有讲的,我先不去用它。我先把这一段代码咔一下到我们的负循环,然后格式化一下来跑一个代码,同学们请看。来了啊。好,首先输第一个班,第一个学生,我们就输好,记得十全部输十分。
15:05
好,平均分应该是10.0。好,这地方没有格式化,这么有一个问题啊。这儿没有换行,没有换行看起来比较比较乱。好,再重新来一下同学们。哦,格式化一下来。好,马上啊,我们马上22。345哦了。好,第二个20。20、20、20。好平均分,第二个班平均分也是20对的,第三个班40。味道好,算我全部都用事实。好,没问题了再看。第三个是都正确的,好,这个第一个我们就解决了,第二个你要说的是还要计算出所有班的平均分。那么我们怎么改进这段代码呢?
16:00
怎么改进代码,诶,同学们看对,你看是不是一次for循环过后,就把一个班的总分算出来了,诶,这个时候赶紧将累积一下。累积累积我们的这个总分就可以了,诶累积一下就post加上这个完事。好,那么这个时候我们要算出整个班级的平总总个所有班级的平均分,是不是要退出这个两退出这个负循环才行呢?诶非常的好,那就老师就快速的写一下喽,好,所有所有班级的平均。分。平。均分为百分号2.f,好,同学们,我把这个快速的给它过一下,那就是总分,总分去除以括起来,我们这个班学生的个数乘以我们班级的个数完事了。
17:01
啊,完事了,这个代码肯定是对的啊,我也不去运行了,那么我们紧接着完成第二个题,他说统计三个班的及格人数,我找一个同学说一下怎么改进这个题。怎么改进这个题?怎么改进,他就能够把所有平均呃及格的人数的这个个数统计出来呢?啊,就三个班及格人数统计出来。是不是也挺简单的,你看啊,是不是我们在这里就能拿到它的平均分啊,他的的分数是不是在这里我们可以把统计一下呀,哎,同学们好,我呢把这个,呃,把这个新建一个文件吧,我们不不写在一起啊,写在一起呢,这个比较容易蒙圈,所以说我新建一个exe。RCI02这个练习。好,你要这个练习呢,我们把前面这段代码拿过来。
18:00
拿过来。好的拿过来过后,我们稍微的改进一下就可以了,哎,改进一下主函数加到这。好站在这里过后呢,这边有一个包没有引进去,好import对吧,scan.ioio点下划线就。可以了,那这边我们稍微的改进一下,我们统计一下,在这个基础上做这个第二个题。好,第二个题,第二个题呢,就在这里写到这。好,统计在这里我们加一个逻辑,就是VAR,我们写一个pass的number,默认默认等于一个零,这个是干什么呢?统计及格,及格啊,及格人数啊人数好同学们非常简单,我在这加一加一点东西,这里赶紧再做你如果我们的score。
19:00
应该就是综合使用了啊,大于了大于等于了60,那么我们认为这个人就是及格的,怎么办呢?Pass number加等于1O了。啊,这就把及格人数统计到最后,我们这再加一个逻辑,就是所有班级的及格人数有。的及格,及格人数为百分号D啊,那么为为多少呢?非常简单,就把刚才我们写的那个叫做pass number写进去就完事了。好,这就是我们的第二个题,我们来跑一下啊,快速的给他跑一下看对不对。看看对不对啊,好十。十二十啊十。十好,这个平均分12,对的对的,我们再看第二个班20。20 20 20,好,这个班平均分为20.0,第三个班30 30 30 30。
20:07
234好,我们可以看到这个班是这个,那么所有班的平均分是20.67,应该差不多,及格人数为怎么是零呢?哦,我我一个人都不那就对了啊,那就一个人没有一个,一个人都没超过60的,那就这样这样子啊,都没及格啊,肯定是对的,好了,嗯,这个题做完以后呢,老师再快速的再把这个讲完,其他的题就留给你们自己去做了啊啊这个叫打印九九乘法表,我也快速的给大家演示一下啊。OK,那exer ci03。打印个九九乘法表。好,我们来看一下这个案例。好,同学们,打印九九乘法表呢,这个图其实已经给我们了,那就一一得一,一二得二吧,二这个我就不说了,那小小朋友都知道,我们开始写了,叫负循环I。
21:01
好,为了好看呢,我干脆先定一个变量,好比如说这个number number呢,我们定到这个九,好开始了,走1TWO。Number。来,再for循环一下。结。结从哪里到哪里呢?好,我们看注意分析,注意分析,同学们看,我来还是做一个思路分析。思路分析。第一个这里肯定用到了双层循环使用,使用那个双层啊,使用那个,呃,两层两层循环。两层循环。两层循环,这是肯定的。啊,为什么使用两层循环呢?大家可以看到,因为它有多行,还有多列。啊,你看它是一共有九行列呢,一共有九列啊,一共有九列,但是每一行的随着这个行的这个个数,行数的增加,列数才能增加的,因此呢,我们这分析出来就是,呃,就行有啊行有。
22:08
有九行。九行啊,九行这是第一点啊,每一行的每一行的这个列数,它的列数在逐渐的增加,列数在增加。增加。对吧,好,这个分析出来过后呢,我们就可以考虑。干什么呢?根据这个业务啊,根据这个逻辑逻辑我们可以编写代码。编写代码。从变形呢看。首先我们先定行。因为它一共有九行,所以说我就挨一到九这个行数就定下来了。诶,行数,那么每一列呢,列数在增加,诶我们观察一下它增加是怎么增加的呢?诶很简单,你看第一行只有一个,第二行有两个,诶这好像刚好跟那个I的增加非常相似。
23:04
诶,那刚好他列的个数就是它的行的个数,那刚好就就这样子就可以了。那我这边就是这样写,这个是定行。确定。行数。行数这边是确定列数。确定这个列数每一行的列数啊,那么列数是什么呢?刚好是1TO I,大家看到没有?确实是e to I这个逻辑。啊,一图I,好,这个呢,我们把它放到这里来。因为你这个原先是一嘛,一呃,那么I如果是一,就是第一行就打进进去一次,如果I变二,就进去两次,以此类推,好,我把这个打印出来了,Print。这是什么玩意儿,这谁谁搞这个东西,怎么变成这个东西了呢?诶,这是什么东西,这个。
24:00
这好讨厌这个玩意儿啊,这很很很讨厌,好我们不管他们多那么多了,百分D等于百分D,好我们来写,那么第一个,哎,我们看看这个第一个D应该写什么呀,同学们,你们看出来是写什么的吗?哎,你们看一下它这个一是不是先是确定的呀。二诶这个一,它这个这个你要看行看行啊,我们先看看。我这样写你看对不对I,然后这个DD是不是就就截啊啊,我们看这样对不对先。其实这样做出来刚好是反的是吧,刚好是反的,但是呢,我们可以先看一看。来,走一个,我们执行一把。我们执行完了之后,我们看这个结果啊,给我们想的呢,呃,有点不太对,好我们为什么这样有问题呢。哦对,是不是应该这样子啊,先隔隔先那个那个一个制表符for循环了一次再去换行,对这样就对了,来跑一个。
25:02
看效果。同学们可以看到这个效果其实已经很像了啊,一二人,但是人,人家这个一啊要写在前面,人家这个二要写在前面,是不是我们仅仅需要做一个动作,把I和节换一下是吧?A,这样就对了,为什么要换呢?因为你这个节进来在这里面,在同一行的时候,这个节是不是就不变了呀?啊,对了嘛,因为你同一行里面。这个你哦I不变,你这个节进去过后,在同一行里边,它就不就固定下来了吗?啊你看这个节对吧,是多少就是多少,就确定下来了,好再来执行一下看效果。你看。这样子。一。哦对,我刚才说错了啊,刚刚说反了,呃,在同一行里边,后面这个I是不是进来就是代表是第几行啊,就不变了,那么节呢,该怎么变还怎么变啊,刚才我刚刚说反了啊,说完了对的应该是要写的,就结是多少就是多少。
26:04
好这样子,你看我们这个。就打印出来了。好,同学们,那关于这一个多重循环的这个这个题呢,我们就评讲到这里,那么我给大家进行一个板书啊,这个题我讲了几个案例,让大家去体验一下它的用法,好应用实例。给同学们板书一下。好的啊,我们讲了一下这个多重循环的。多种循环的应用实例一共有三个。好,给大家放到这里啊,第一个题。第一个题我讲了。第一个题。第二个企业还有一个打印九九乘法表,我们也打印出来了,那么我把原代码代码啊,案例代码。案例。按理,代。
27:00
代码写到这里来。案例代码写到这里来,那么我一共呢?有这么三个案例,我都给同学们板述一下。好,放到这儿啊,放到这儿,如果大家看这些代码还觉得有点吃力的话啊,同学们,那你就要就要赶紧提高警惕了,因为这些都是最基本的。对,都是特别基本的一些,呃,这个逻辑在里边哈,如果你这个看起来还有点吃力,那就赶紧马上加强一下啊,把这些东西,把这些基础再过一过。好,这是我们讲的这个九九乘法表。好,这就说完了啊,说完了好,我们截取一段视频。
我来说两句