00:00
那我们第二章呢,叫基本语法,呃,我们在第二章的上呢,重点讲的就是变量和运算符,呃,那接着呢,我们来说这个下下呢,我们就来讲流程控制。好讲这个流程控制啊,那么首先呢,提到这个叫流程控制。这个词的话呢,感觉上稍微有点陌生。就像这个面试的时候呢,问有的同学说自己预习过啊,我说你说一下Java当中的流程控制呢,有哪几个结构,一问就问懵了。流程控制是吧,然后再一提示说,我说比如条件判断呀,循环呀,好啊知道这是问啥了。啊,就是一说这个流程控制,感觉都不知道在问什么东西哈,诶这个呢,其实这个词呢,来自于算是工业的这个这个这个流水线了哈,就是比如你看我这还放了个图。比如说这呢,叫这个塑料软包装的一个生产流程啊,那一开始呢,给人家达成一个合作协议啊,开始做设计,然后设计完以后呢,在这个工厂里边啊,制版呀,印刷呀,复合呀等等等等,最后呢出来一个成品啊,中间呢还有一些质检等等的一个过程。
01:06
这呢就是整个设计到你最后出货,这其实就是个流程。啊是一个叫生产流程,那么在这个生产的流程过程当中,我们需要对这个过程有一个监控,比如说呢,呃,有的这个环节呢,我们需要比如说质检是吧,质检你把这个产品呢,抽出来,诶看一下合格与否,合格的话啊就放回去,不合格的话呢,给它剔除出来。这其实呢,就有了这个分支的概念。啊,就分支啊,合格的往这边走,不合格呢往这边走,这就这种分支结构啊。那么还会有一些呢,呃,这种像循环的一些结构啊,有的这个产品,比如说在这个这个这个呃,生产流程的过程当中呢,可能需要被清洗一下,那清洗的话呢,可能在这个环节里边呢,它需要清洗一下,到下个环节又得需要清洗一下,那么清洗的这个环节就需要就是相当于反复要被执行的了。啊,类似于呢,就是一个循环的一个结构。
02:02
啊,就是这呢,实际上是一个工业上的啊,那对于咱们软件开发来讲呢,其实我们也把它叫做流程控制。对,咱们写的这个代码哈,其实呢,也相当于就是一个工业上的一个流水线一样。从开始第一行执行代码,到最后呢,你执行完毕,这也是一个整体的流程。在这个流程过程当中呢,整体上呢,是一个顺序结构。啊,按照从上往下的顺序呢去执行,但是呢,也不排除当中有时候会有一个分叉。啊说如果这样的时候怎么着,如果那样的时候怎么着,这就是分支结构。那那除了这个之外呢,也可能会出现这种循环结构。啊说这样的情况下呢,我就循环啊还不行,再循环再循环,哎,满足某个条件的时候呢,再出去。啊,这就叫做循环结构。啊,那对于我们这个软件开发来讲,或者说这个工业流程控制上来讲,实际上呢,就这三种结构就够了。
03:01
总结一下哪三种?哎,整体上来讲呢,是一个顺序结构。嗯,在这个整体的顺序结构的基础之上呢,会有分支结构,会有循环结构。对,这就是我们说的这个事情啊。哎,就是写代码,跟我们说工业生产这个流程其实是一样的啊,包括呢,这个这个词哈,叫工程师。哎,大家毕业的时候呢,嗯,这个去公司里边写代码了,说难听一点叫程序员,那那算还算好听的啊,很正常的,对,有个词叫码农是吧。哎,其实这个呢,算是成员,有时候有点自嘲了啊,哎说马龙,哎,那说的这个一般一点啊,就是叫成员了,这个谈不上好坏了,就是一般的一个词汇了。哎,说到高大上一点呢,就工程师了。啊对,就是工程师了啊,比如张二一软件开发工程师,大数据啊开发工程师啊,就叫工程师了啊你像我刚开刚接触这个编程的时候呢,一说工程师脑子里边第一反应就是在那个工地上戴一个安全帽是吧?啊然后呢,拿着图纸加到这个腋下,然后呢,走啊说这叫工程师,说怎么这个写代码呢,还叫工程师呢。
04:23
哎,怎么理解啊?对,其实叫工程师也是合理的哈,就是咱们那个呢,就叫建筑工程师是吧,他是设计这个大厦这个大楼的哈,哎,那咱们呢,其实你写的整个这个系统,比如说像12306或者京东整个这个系统呢,它其实也是一个大的工程。啊,它里边其实可以很复杂的哈,就像我们说的这12306,可能大家,诶,大家不知道经历经历没经历,就是最初刚开始12306上线那个时候。那个商线手这真是被吐槽的骂的太狠了是吧,这个一上线的时候呢,一下子就涌入这个几百万上千万的用户,然后呢,大家不管登录上去以后呢,没出票还不停的刷新,那不停的刷新你就刷吧,刷爆了是吧,服务器呢,就一而再再而三的宕机啊,总是买不到票,然后一顿吐槽一顿骂,然后呢,这个开发工程师都不好意思说说那是我写的是吧啊,结果突然爆出个消息说12306在美国获奖,大家觉得写的那烂网站还能获奖呢,是不是里边又塞钱了又啥的是吧?
05:28
实际上这12306呢,刷还是挺复杂的啊,你想想这个到过年这个时候,那那比这个这个这个双11其实印化量还大,而且呢,双11这个阿里也不是说一天他就呃这个这个说以前没有这个双11活动,今年咔搞双11活动,然后呢,一下子涌入这个几百万上千万的用户在同一个时间去支付了,他也不是说一下子就到了,它是呃,从零几年开始有这个活动开始,呃这个人数呢是递增,所以它的技术呢,就是诶每一年我革新一点,服务器呢,我每一年优化一点,每一年加一点。
06:01
幺二三零六五十哈,上来就得是高病房的是吧?哎,那对他的考验极大哈,所以呢,这个他虽然经过这个实验室的这个模拟啊,去这个去这个测试啊,跟这个真实的情况还是有点区别,所以呢,当机啊也能够去理解啊,那另外的话呢,这个系统其实还是挺困难的啊,你想想这个大家都去买票,全国这么多站点,你就比如说从北京到广州这一趟线,这一趟线的那一个座位就有可能被很多个人坐。那你怎么去这样去分配啊。对吧,其实里边还是挺复杂的啊嗯,那其实它也就相当于一个大的系统,就跟你盖一个大楼一样啊,大楼那个呢,你是看得见摸得着的那个楼,它叫建筑工程师,那我们写的这个大的一个系统,大的一个架构软件的一个系统架构,一层一层的啊,直到落到你最终的那一个银行的代码啊,它其实也是一个大的系统,大的一个工程,所以呢,我们也叫做工程师啊,是这样子的啊。这个码农的话呢,其实是算我们程序员的一个自嘲了,就是说在北京当码农的,比如说呢,有有一个特别远观的亲戚还特别不靠谱,找你借钱是吧,你就说我就是一个码农是吧?啊就感觉特别穷啊,你要是交女朋友呢,哎,在老家谈了一个,或者说要谈一个,你觉得对方还挺好,比如说我在北京当工程师呢,啊,就感觉很高大上是吧。
07:25
嗯,其实你要说这个码农的话呢,我们把什么样的这个具体的工作,真的可以把它称作真的就跟码农一样的。就是那种。属于那叫什么呀,就是外包的啊,你像以前有这个对日开发,然后这个日本这块,比如说需要什么样的程序的,他就会日本人做事还是很细致的哈,他就把那个文档呢,写的极清楚。啊,就是清楚到呢,具体定一个变量,变量是什么类型,叫什么变量名,它都会这个这个文档都给你写好了,然后呢,你只需要看着它这个文档呢,去生成对应的代码就可以了。里边具体这个逻辑怎么去写,需要怎么做,他都基本上都给你说明清楚了,只需要给它翻译成代码就行,实际上这时候呢,不怎么需要你动脑风格。
08:07
啊,就是这个架构,用什么框架你都不用管,人家都写好了,你就怎么用就完了。这个时候来讲,其实这个岗位有点就像一个农民一样。不需要你有特别高深的一些技术。对吧,你可以说这样的岗位是一个码,但是你要说这个人他能够在公司里边做这个项目,整体的架构是什么啊,服务器怎么去搭,怎么优化,其实不能把它叫成马龙,因为它需要考虑的东西呢,不只限于写代码这个层面,还有更高级别的一些要求,是吧,应该叫工程师更合适啊。行啊,又扯出去再拉回来,就是我们在这个程序写的过程当中呢,就会有这样的三种结构啊,顺序结构,分支结构和这个循环结构啊,这个顺序结构呢,其实啊,不需要我们去多说了啊,就是程序从上到下顺序执行啊,这就是咱们写的之前的这些代码都是对,都是整体来讲都是顺序的。
09:02
啊,从B方法进来以后,就从上往下执行,那就可以了啊。啊,这个我们先填一下。
我来说两句