00:00
好,那么关于这个for循环,While循环,哎,咱们就告一段落了啊,接着的话呢,我们来看一下第三个这个循环结构,这个呢叫do well循环。哎,那么相较于for循环和while循环来讲呢,这个循环结构呢,用的要稍微的少一些了。啊,稍微的要少一些,那么这个结构呢,它是长什么样子,这块我们下边呢,也做一个说明,哎,新建一个哎账号程序啊do well。哎,它的一个测试,哎,这个注意你看命名的时候,我们都满足这个大驼峰的这样一种方式啊,哎。Can the canwe。保存。哎,这样啊,好,这块我从这块儿呢,摘一下这个结构,哎,把这个呢CTRLC。诶这样粘过来,这儿呢叫do well循环啊,它的一个使用,好,那还是回到说这个问题啊,说凡是循环结构一定会有四个要素啊,这儿呢,我把这四个要素呢还放到这儿了,那下边呢,主要咱看一下这个dowell啊,它长什么样子啊。
01:01
这个do y的话呢,大括呢,先是这么着的,哎,一个do,后边呢是一个大括号,哎,然后呢,在这个大括号结束的时候呢,只来一个will,哎,长这样。啊长这样啊好,那要长这样的话呢,这四个部分看怎么放。哎,首先呃,第一个初始化条件呢,是放到肚的上面的。哎,这叫输入化条件啊,哎,这个完了以后呢,度度就是我们要做的事儿。对,其实就是我们的是不是循环体了,对吧,哎这呢,就是放这个三了。哎,放三,然后呢,这个while这块呢,就是当什么什么的时候。对,很显然呢,就是当这个满足的时候呢,就直度就做这个事儿是吧,所以很显然呢,是不是这个循环条件应该是放在这儿的。对,那132又差个四,大家觉得四放哪呢。是不是应该就在这儿了得?哎,在这儿啊,这个呢,跟咱们这个while呢,其实稍微有点像啊,三个字呢是在一起的。啊,这个注意一下啊行,哎,这个结构呢,写完之后呢,咱们下边也是关心一下它的一个执行的过程。
02:06
这个执行过程啊,跟前边儿那哥俩呢,就不太一样了。啊,它这个执行过程,首先先是一个一一完了以后有变化。对一完了以后呢,按照我们前面的思路呢,就是你上来呢,先得判断一下这个条件满不满足,满足了就执行,不满足就直接出去了,相当于一次也不执行了,但是它不是一样啊,诶初始化条件完了以后呢,上来我先跑一遍。我先爽一次再说是吧。哎,上来呢,就先来个三了。哎,三完了以后呢,一看这个四,四完了以后一看这个二呢,也不满足。不满足,反正我也执行了一遍。所以跟我们前面呢,就稍微有点区别是吧。啊,哎,如果说呢,你看咱们讲这个for,哎,讲这个for的执行过程,这不我们是在这儿吗。哎,讲这个while的这个执行过程呢,是在这儿,嗯,我这样吧,你看这两个的话呢,是一样的。
03:01
啊,然后跟我们现在这个呢不一样。啊,现在这个话呢,我们是一直接就三四,然后才是二。哎,如果举一个生活中的例子,这个呢,如果大家看到是什么呢?哎一呢,就是你比如说现在肚子饿了,你要呢,去这个饭店吃个饭,哎去饭店吃饭的话呢,上来就先二一下。先看看身上有没有钱。啊,一看身上有钱,有钱,那就进去就吃饭了。呃,然后呢,看还有没有钱,还有钱再点。啊,还有钱再点,你看当然这个吃吃撑了是一方面是吧,呃,另外的话,你发现呢,这个没有钱了,没有钱就出来了。哎,这个呢,就是有多少钱花多少钱,这样是吧,这个呢。啊,肚子饿了是吧,上去先爽一次是吧,先吃完了,吃完以后呢,一看没钱,没钱,那就走得了。对,所以这个你看有这样的区别哈,哎,但是如果说呢,你看我要是一进去,我要判断有钱呢。有钱你就可以再点了。哎,然后有钱了你再点,有钱再点,然后最后出去的话呢,也是因为没钱了出去的是吧,所以呢,后边这块就一样了。
04:05
啊OK啊行啊134,然后二二完了以后呢,又是三三完了又是四,然后又是二点点点啊一直到这个二呢,不满足,哎,这就出去了。OK啊,所以呢这呢就是它的一个执行过程,诶下边紧接着我们要说一个这个说明了。哎,这个说明的话呢,诶,刚才我们看到这样一个特征哈,就是do well循环呢,它至少会执行一次循环体啊。Do well。哎,这个循环,哎,至少会执行一次。哎,这个循环体啊,哎,这个结构这呢,就是它跟我们前边这两种循环结构的算是一个小的区别了啊,但是如果呢,实际上直径的时候呢,它不管就是。是这个意思啊,这个大家注意听一下,如果呢,我们这个do循环,它这个循环条件呢,不是说一开始就不满足。就一开始也满足。那在这种情况下呢,其实它跟前面的那两类呢,是可以相互转换的。
05:04
有点懵。来咱们写个例子说一下啊好,咱们前面的话呢,不是做过一个需求嘛,说呢便利100以内的偶数啊。啊,便利啊,100。啊以内的这个偶数,然后呢并啊输出。哎,偶数的一个个数和总和,哎这呢我们同样呢来做这个需求啊,那么这个时候呢,其实用do well呢,跟用前面两个呢,都是可以来完成这个结构的啊。好,那这块呢,我们首先呢,比如说in一个I,这个值呢就是一,然后呢,这块写这个do,哎,然后这块呢,写这个will。啊,你看这个总感觉这个。好像头重脚轻一样是吧?呃,那这块写的话呢,先写谁呢。有同学说先擅长写well,那你先擅擅长写well,你就先写well也行,这块相当于就是你到底要干什么,就先写你要干什么是吧?好,我要干的事呢,是不是判断他是不是偶数啊。所以你上来就直接写衣服也行啊,I取模二,哎,是不是等等于零。
06:04
哎,如果要等等于零。序目二这个不用在这写啊。如果要等于零呢,说明它就是偶数,那我就把这个偶数呢输出一下。哎哎往这一放,哎这就行了,然后呢,这个呃,输入完以后的话呢,紧接着这个I呢,已经判断好了,然后我就得哎加加了嘛。哎,然后呢,这个条件呢,就是I呢,得小于等于100是吧。OK啊行,你也可以呢,针对咱们前面讲的这是一,这是二,然后呢,这是三,这是第四步啊,你把那几个部分呢,给它重新组合一下,放到这个结构里边也行。啊,也是这样的一个思路,行这呢,我们就把它啊,100以内的偶数呢,就能够做一个变利了啊先看一下效果啊。哎,读的一个测试。哎,这个呢,你看哎这又出来了。好,那么接着啊,说输出偶数的个数和总和,哎,这个呢,跟咱们前面也是一样,哎,在这个位置我们就定一个count,哎,零。
07:05
记录这个个数啊。好,再印的一个萨姆啊,这也是零。哎,记住这个偶数的这个,哎,总和。好,然后呢,在我们这里边儿啊,一旦呢,你要是个偶数,我们个数就加一萨呢,叫加等于哎。诶跟前面的思路是一样的,然后最后呢,我们这儿呢,做一个输出。哎,在这啊,哎说这个,哎,偶数的个数为。哎,这呢,我们去加上一个count。哎,把呢在CTRLCCTRLV的和为。哎,这个我们加上一个some。诶,保存一下,哎,这就成了。好,来,我们保存来做一个测试编译。哎,运行好这个偶数的个数,偶数的总和,哎,这就成了。好,这个呢,回头来再说一下啊,就是说呢,哎,就是我刚才说的那个事儿,如果呢,一开始的这个循环条件啊,一开始这个循环条件它是满足的。
08:09
实际上呢,在这种情况下呢,就好比是你看我这定义的是个I,是不是一开始也满足嘛,那就是说呢,你不管是do well也好,还是while循环啊,这个for循环也好,大家都会去执行这个循环体的,在这种情况下呢,大家其实三者之间是可以转换的。啊,但是呢,如果说呢,你一上来这个条件呢,就不满足,那如果你要用do well的话呢,它就会执行一次。而另外两个呢,不执行。就跟说身上你有钱的话呢,其实大家呢,就是吃几次呢都一样。就是你独霸情况也不不会存在说最后能够赊一次的这个情况。因为你过了第一次之后,你下一次的时候呢,每次不都得看看有没有钱吗。对吧,哎对啊,哎,就是只有呢,第一次呢,就是如果就可能不满足了,这个时候呢,Do well跟他们有区别才是这个。啊,这个大家稍微的关注一下这个事儿啊。好这呢写成是一个呃这个小一,然后呢,第二个情况呢,就是说呃,其实呢,范范来讲啊,For循环。
09:06
哎,While循环,还有这个do well循环。哎,三者之间啊,是可以转换的。哎,相互啊转换的。OK啊,哎,这呢就是我们相当于写了一个前面两个写过,我们这呢,换成了是用do well来写的,行,那么至少会执行一次循环体,这个事儿呢,我们刚才只是理论上呢说了,然后我们也可以写一个小例子啊。哎,当然也比较简单了,比如这块我定一个这个number,这个number是个一,它是个十,哎这呢我写个well吧,哎用while循环呢,来去体会啊,嗯,在这里边呢,比如我们判断一下这个NUMBER1呢,它得大于十。啊,这种情况下呢,我们就写个输出语句。啊,这个,哎,写一个。比如来一个啊,叫while里边的一个hello。哎,我就这样写的,哎,然后呢,这个迭代条件呢,我写了个NUMBER1呢,让他减减。OK啊,比如我就这样来处理整个这样一个逻辑,那么这个如果用while来去体会的话呢,显然。
10:06
不会输出是吧。嗯,对的啊,行,那同步的话,我现在把它改成用这个do well来写啊,同步的我就定一个NUMBER2呢,也是十,哎,这里写do。啊,那么这里边儿的话呢,应该是放这个吧。哎,这呢,我们来一个叫do well,它的一个hello啊,然后NUMBER2呢减减,然后这呢写个well。哎,二呢,大于十是吧。哎,这样的逻辑了,行,还有这四个部分,我们就是用它呢,重新组合了一下,那其实他们二者呢,是有这个区别的。你看这时候我们do well呢就打出来了,而他呢就没有打。哎,这呢就体会一下,他至少会执行一次啊。啊,其他的这个多的话呢,大家也不用去深究了啊,那么在实际开发当中啊,我们说这个do要循环用的相对来说少一点啊,咱们在这儿也写一下。哎,都要循环结构。
11:00
啊,在开发中。啊,相较于。啊,这个for循环和while循环来讲。啊,使用的较少。OK啊行,哎怎么来理解这个事儿呢,就是说呢,哎首先呢,它呢都能够,呃使用这几个呢,结构呢相互转化,那既然能相互转呢,可能我们理论上来讲就可以不用它。哎,大家说什么时候一定会用它呢,你说诶这块一定会执行一次循环体,其实这块一定会执行一次循环体的话,你也不用非得说通过这个结构去体现。你也可以说呢,把要执行的意思,比如说写到循环的上面。哎,类似这样的方式呢,也是可以的,所以从这个角度来讲的话呢,我们do呢,其实都可以考虑用这两个结构呢去替换一下。所以一般呢,平时我们开发写循环的话呢,比较少的会想到用它。啊,这个大家稍微关注一下这个事儿啊。好,那么关于这个,呃,多奥循环它的这个结构呢,咱们就说到这儿了。好,那接着的话呢,我们来看一看这个课后的题目啊,第一个的话呢,这个变列偶数,这个咱们已经做过了啊,这个呢,体会他知道这一次我们也做过了,然后下边来看一看这个题啊,叫ATM的一个取款,诶这个题目的话有点意思了。
12:12
那有点像我们实际当中的这个需求一样,好CTRL一下。啊,回来啊,新建一个账号程序do。While的一个测试啊,一。来,我们看一看啊。好,这呢是模拟ATM取款这样的一个题目。嗯,CTRLV保存一下。哎,看一看。哎,模拟。啊,ATM啊取款。取款啊说呢,这个声明一个变量叫做balance,诶它的初始值呢是零,哎相当于你的银行账户哈,诶这个就是账户余额的意思了,说它用于表示账户的余额,下面呢,通过ATM机呢,实现一个取款的存款的操作,诶这呢一上来它有这样的一个显示。
13:03
这个呢,不管你存款还是取款啊,就是或者你什么操作也不做,一上来的话呢,我们就先把这个给你显示出来。所以诶说那我们要用do well来写啊,啊也是可以的啊,这你不用do well写这个well也行。好,那么当我们呃,显示这个数据以后呢,紧跟着光标呢,就在这闪等着呢,咱去输入了,现在你得用这个scanner。哎,输入的话你就写个123或者是四,你说我写个五,呃,写五的话呢,只要你不写1234呢,你就可以说一个说输入错误是吧?哎,请重新输入,哎。可以这样了。行,那一旦呢,他输入的是123或者四的话呢,我们就执行相关的这个逻辑,这个逻辑呢,就是让我们这个balance呢去存钱。那你可以接着说呢,你要存多少钱?是吧,哎,然后呢,这个你要取钱的话呢,接着你说你要取多少钱。然后呢,相应的对这个balance呢,做一个加或者是减。呃,然后呢,这个三的话呢,就把balance登的指能给他打印一下,哎,四的话呢,直接就结束当前的循环就行。
14:04
感觉上呢,一说好像挺简单的是吧。嗯,写的话呢,行不行呢。当然呢,这个呃,目前呢写到这儿,你看我们一开始讲这个流程控制的话呢,其实这个练习的话呢,就比较多了哈,诶中午的话呢,也有同学给我发信息说感觉现在这个代码呢,诶上课要听的话呢,感觉也还行。也算是能听明听得明白,但是真正自己写的时候呢,发现无从下手,写的特别慢是吧。也是非常正常的一个事儿。啊,就是大家呢,现在呢,写这个代码呢,如果说诶你基本上听的都能够听得懂,呃,说明整个你的认知啊,逻辑啊,各方面都是没有问题的啊,如果听的话有点费劲了,那就得具体问题咱们看一看,比如像这道题,那是不是说这个公约数公倍数这个概念不清楚啊,哎,还是怎么回事啊是吧?哎把这个呢,我们再去针对性的看一看,如果整体上来讲,你说基本上都能听得明白了,那就是练啊。哎,你还记不记得咱们一开始讲讲这的时候。
15:01
哎,这是咱们这个课件啊,哎,这不第二个部分呢,这不是有一个这个学习方法和学习经验。哎,咱们当时讲的时候,我说过这个图吗。对,就这个扔球这个事儿的话呢,就相当于咱们现在写的这个代码,诶这个事儿呢,说完了,诶大家说诶挺清楚的是吧,就是把这个球扔上去,然后呢,左手扔给右手,右手呢再接着扔上去这个左手呢接掉下来的这个,这就是咱们相当于写代码的这个过程哈,诶你听懂了,关键的就是你下边自己练的时候,你会老是掉这个球。它就是这样子的是吧,哎,你老掉,你老练老写,然后呢,诶后边就不掉了。就跟说现在这个,就跟说大家这个骑自行车一样哈,骑自行车的话呢,如果你要是会骑自行车了,你发现这个事儿,这不很简单吗。是吧,你这个脚两个脚就那样转了一圈,蹬,眼睛往前看是吧,手上揉着把车子要往哪倒了,你就往那边拧一下。多简单的事儿是吧?哎,这是你会的时候呢,你就觉得不难哈,但是你刚开始骑自行车的时候,谁没摔过呢?你不可能不摔是吧,但是你要是怕摔了。
16:02
那你肯定学不会。是吧,而且呢,通常我会发现一个事儿啊,就是什么呀,就是人这个年龄越大的时候吧。就胆儿就越小。或者说呢,就读的书越多的时候呢,胆儿就越小。啊,你看这个,你知道那些那个以前那种土匪都没读过书,那咔咔给你不干了是吧,起义了。你让他们读到博士试试。啊,一个个都老蔫儿了是吧,我我不敢是吧,啊,肯定是这样子的啊对,你看那个就跟我说我家那孩子一样,现在30岁的,你手机往这一放。就整吧是吧,他不管你说我这扣钱了,那个打出去电话他不管你,他就咔咔一顿点,最后呢,就很快他就知道怎么去玩了。但你要是,哎让我妈是吧,她现在这个在家,比如说整个微信呀,干个啥的呀。他他不敢,他怕说哎呀,我一不小心,万一要是呃这个给我扣了费了,又又扣我钱了呀,打电话又打出去了呀,他不敢去试,不敢试的话呢,所以他最后手机所以又发现呢,就是最基本的功能会用啊,虽然用了个智能机,但是很多绝大部分功能他都不会。
17:06
啊,他不敢去尝试嘛,就是因为知识的储备,你说跟个三四岁的孩子比,那肯定老人会更高一些是吧,就是不敢尝试,大家也是一样啊,就是你看他代码的时候呢,你要敢去写,那大不了的话呢,就在这报个错,他就是死循环,你电脑也不至于呼呼的一会儿烧了。大家现在应该还写不出来那么高级的代码是吧?所以你放开了写啊,以后呢,能写出烧烧电脑的代码呢,那时候悠着点,那时候你的功底已经很强了,是吧?啊对啊,诶,所以这块呢,你主要是你得放开去写,你不写你肯定是你也学不会的啊,这个注意。好,那么回过来看一下说呢,首先啊,这个题目呢,整个这个分析的话呢,嗯,这个其实写一下也行,但是写的话呢,也也呃只能是泛泛的量一写啊首先的话呢,我们需要呢,去定义一个变量。啊,定义这个。哎,定义这个叫balance的变量。
18:01
啊,然后呢,来去记录啊,这个银行的账户余额。诶就是这个事儿好,那定义完它以后呢,接下来诶,我们主要呢,是需要跟用户跟这个这个界面呢,有个交互哈,首先呢,你得去呃,有能力生成这样一个界面的效果啊。生成ATM的这个界面。哎,取款的。嗯,这个界面。啊,那这个界面的话呢,我们会发现呢,它会翻来覆去的出现,比如说你刚存完钱,紧接着你就想取钱,哎,所以这块呢,这个就是放在我们的循环体里边了啊,所以生成它这个界面的时候呢,这个我们就诶考虑使用这个循环的这个结构了。好,然后接下来的话呢,用户呢,需要有键盘的一个交互行为啊,去来表示你存了多少钱,呃,先是表示呢,你选择的是123还是四,诶所以这块呢,就涉及到呢,你需要呃使用。啊,Scanner。来获取用户的。啊,选择。
19:00
诶,这个选择的话呢,我们可以列解成了是你1234这样的选择,好,那么后续的话呢,根据你,诶选择的123还是四呢,我们做后续的一个行为啊根据。哎,用户的这个,哎选择。啊来决定啊,这个执行啊,存款取款。哎,这个显示余额。哎,还是这个,诶退出的操作。哎,然后这个操作的话呢,具体的细节我们再循环里边去实现就可以了,诶最后呢,再关闭一下scanner这个资源,OK,哎,这就大体的一个思路了,行,那下边我们开始去操作了啊,诶首先啊,Balance这个余额这个我们定义成是一个。Double吧。哎,对,更合适一点啊好,Balance呢,一开始是个零,那这样写行吗?可以的啊,你说我也写个0.0也行。这都可以啊好,那这个定义完以后呢,接下来啊,我们这呢,有个界面的一个效果了,这个效果的话,刚才说了它会翻来覆去的去显示啊,所以我们就放到循环体里了,那因为咱们这块呢,不是讲这个do well嘛,所以我就用do well写了。
20:09
哎,大家下来呢,也可以把它改写成while啊,或者是for啊。哎,先来一个度。哎,然后这块一个well,哎先把这个分号呢,接着给它加上啊好,那先来处理这个逻辑啊说呢声明一个,呃,声明好这个ATM的整个这个界面的这样个效果,呃,这其实就是输出语句。在这呢,你就把这个信息呢,给它一行一行的给它,哎,打印出来就行。嗯,123456啊。啊,这个呢,我们叫存款。哎,这样啊。取款。这个显示余额。哎,退出。
21:01
哎,请选择啊CTRLC。那么请选的话呢,这个光标呢,如果你就想让他在后边闪,那你就把这个呢换行就去掉,哎,在后边这块我们使用这个scanner来获取就可以了。啊,在这儿啊好,那既然出现scanner了啊,这块我们还是使用。首先,Import。你看,我们已经写过好多使用scanner了。你关于这个scanner为什么要写这个语句,包括呢,下边为什么要这样的方式呢?去造个对象是吧。你可能也不清楚,但是你是不是写的也挺嗨啊。是吧,哎,所以说这块呢,有一些操作呢,大家你先不用着急说为什么呀,你要什么都研究,为什么那这个事儿就就没头了,是吧。啊,就跟说呢,你小的时候开始会说话了啊,你妈说说叫妈妈。你不能来一句说为啥?他得给你证明你俩有血缘关系是吧,这个事儿就复杂了啊。呃,一开始先怎么着,你就先怎么着来着啊。以后你再说,为啥叫他妈呢,你再去研究一下这个原因是吧。
22:03
啊,这个原因呢,还挺复杂的。啊。我记得我家那个我姐家那个那个那个姑娘啊,上小学几年级的时候呢,她问我说她是从哪儿来的。我当时就想这个事儿我应该怎么说呢?是吧,我说你在你你妈的肚子里边这个诶怀人生出来,结果最后解释完以后呢,他问了我一个问题,我当时就崩溃了。他那那我是不是我的孩子现在也在我肚子里呢,哎呀,我说我解释好像有点问题是吧,啊是的啊。啊,请这个诶拉回来啊,就是这个有一些问题的话呢,就是你就先整着哈,先不用着急非得去研究说为啥为啥,那这就没头了,先写着是吧,写着写着,其实有时候呢,你再去问个为啥,往往呢,这个可能就更好去理解啊。诶先有一个scanner呢,呃,先获取用户的一个选择,那我们就诶拿到用户的选择,这呢,用一个整形来接收。啊,这块我们就得到一个啊,用户的一个叫selection吧。
23:01
诶得到用户的这个选择啊,但这个选择的话呢,诶,我们希望它是1234里边选的一个,但也可能不是,那就再加个额外的else之类的就行是吧。那下边呢,有分支了哈。啊,用哪个分支结构呢。哎,对的,嗯,用Switch case呢要好一点对吧,哎,整形的,而且呢,取值情况也不多,哎,咱们就用Switch case了。当然了,If肯定行是吧?嗯。哎,在这里边把这个selection呢,哎往这一放,这是一个变量了,然后下面呢写case啊case呢这块写一个一。哎,冒号。然后下边,哎,你具体的选择,我先把这个情况整出来啊。A3。啊,K4。哎,好,最后还有一个default。哎,Defat的话呢,相对好写一点,就是你输呃,输入有误是吧。
24:05
哎,这个呢,要输入。哎,有误啊请哎重新输入哎保存哎这就可以了,行,嗯这呢是写个他,嗯这你加不加break呢,其实都。不重要了哈,诶你布加的话呢,也是结束,也到了这个结束Switch Switch的一个情况了,哎,所以这个我们就把它先诶注入掉吧,好这呢是咱们大块的这样的一个选择了。啊,具体你做这个事儿啊,然后呢,这有一个while是吧,While这块呢,这是你结束这个循环的一个情况哈,那这块咋处理呢。对,就是当用户选择四的时候呢,就让他退出是吧,那选择四的时候让他退出,这这咋弄。选择四的时候退出,退出跟这有啥关系。对,其实这块涉及到什么呢?就是我们现在要结束一个循环哈,这个结束循环呢,我们讲了有两种方式是吧。
25:03
回忆一下啊,第一种的话呢,是这个循环条件不满足出去的。哎,第二种呢,是。对,在循环结构当中,哎,如果出现break了,他也能够结束循环。哎,那我们这个,呃,四里边呢,天然就有一个break了啊,不光他有啊,别的也有。这个你注意啊,这个break如果我们要是执行的话,你觉得它是结束Switch case呢,还是结束循环了呢?对,这个取决于什么呢?取决于就是谁包着他最近。啊,你看这个break呢,是不是包在人家这个里边他进啊,所以这个break呢,就是来结束它的,也就是说呢,你这时候这个break呢,人家是用来退出Switch结构的,你不能说用户一选择四说这块呢,我一定要break说结束循环了。哎,不行。啊呃,那但是呢,我们,诶这个这个不能通过这瑞去结束啊,那我们就考通过这儿去结束,通过这儿结束的话呢,这块。或者说呢,我们这个循环有可能会多次执行,不停的在执行这个位置的话呢,你且说几次吧,好像也不太靠谱。
26:06
得含糊一点,你要这块写成个永远满足的话呢,他就退出不了了。纠结了。哎,通过这个呢,我们说有一个小的思路哈,我们可以设置一个。对变量。哎,这个变量呢,你看我这样来写,我写到前面啊,哎,是一个布尔类型的啊,这呢就跟小旗子似的啊,我就要个flag了,Flag就有个小旗儿是吧?哎,这个值呢,一开始呢,我让它是个处。然后呢,我把这个变量呢,注意CTRLC放在这儿。那就意味着一开始的时候呢,你看我我执行一遍这个循环体,然后到这儿呢,这是个处。这不就又进去了吗?呃,然后呢,又走啊,那什么时候这块呢,不循环了呢。就是当你写四的时候呢,我把它改成一个force是吧。哎,这时候呢,你退出break是退出你这个Switch的,然后接着一走,这这不放了。诶这种思想呢,以后大家会常用的啊,诶这呢有一个意识,OK,哎这呢就是用它呢来去控制这个循环的结束。
27:12
诶,你会发现呢,我通常现在写一个代码的时候呢,在声明完一个变量的时候,我都会去写一下它是什么作用,诶这个大家呢,尽量也养成一个好的习惯啊,我们如果看源码的话呢,基本上源码的每一个变量啊,每一个方法呀,它前面都会写一个注释的。行,那么下边我们就开始来捋一下这个事儿了啊呃,目前的话呢,我们这个程序呢,一执行现在就在这块呢,等着我们呢。我们就输入一个123或者四,然后你要输个四的话呢,目前能退出,退出的话呢,呃,这个事儿呢,应该是在我们这个里边去做了。哎,在这去做了啊,然后最后呢,咱们把这个先给它弄上啊,干点close一下。哎,这个别丢了啊,关闭资源啊。好保存一下。呃,那咱们目前呢,可以稍微的跑一下看看是吧,应该是能跑起来了啊。
28:02
C。啊的一个测试测试啊一。啊,这有错啊,说找不到负二这个SKY。哦,看这啊。我这个位置放的不好。诶,这个呢,你每循环一次,我就造个对象,没必要是吧。啊,然后这个呢,我放里边了,所以呢,我们在这个循环外边再去调,这个是看不见了啊,这不是呃,大括号里边的嘛,所以这个位置我们不不能放在这儿啊。哎,把他那拿出来,是不是应该定义到这儿。哎,对的啊,这个使用scanner获取用户的选择啊,这个呢是实例化scanner啊。诶,保存一下行,正好他报了个错,还提示我们让咱们能知道呢,哎,别写在里边啊,那接着接着再来编译啊,过了Java。哎,Well,这个TEST1啊,走起。行,那这块呢,就出来这样的效果了,哎,这不是光标在这闪,是因为这块执行完以后呢,在这等着我们选择呢,比如我们选了一个一。
29:05
你看啊,我选了个一啊,其实里边呢,还没写东西呢。回车一下。对译完了以后呢,相当于我们什么也没有,结束了这呃,结束了我们当前这个思Switch结构以后呢,这是个处啊,又回来,这不又打印我们这个效果嘛,选个二也一样,选个三也一样,选四。对四的话呢,这个就把变量改成false了,我们这个while这块呢,就结束了是吧。那就结束了。所以呢,这个大块呢,现在我们已经搭起来了。诶,接下来我们就开始写里边这个具体的这个业务这个代码了啊好。当用户如果选择一的时候,这个叫存款,那我们需要呢,提示用户说请输入存款余额,哎,存款的这个。金额是吧,对。在这啊。请输入存款的金额。嗯,来个冒号吧,那这个换行呢,咱就比如说就不要了啊好在这呢,我们来一个啊,干点next double吧。
30:08
哎,Double的一个这个来一个什么呀。Money是吧?行,诶存款的金额写完以后的话呢,把这个额度呢,是不是加到我们这个balance上就行。呃,有同学说,那这块你写个负的呢。写个负的确实不应该是吧,那咱们稍微判断一下吧。MANY1呢,它得大于零是吧,等于零都不行啊,然后在这里边儿呢,我们让这个a balance呢加。哎,加等一下这个money。一是吧,哎,这时候就可以了。这个呢,只负责这个存钱啊,它不显示余额,那么这个是不是就写完了。好的,然后这个二的话呢,就是叫做这个取钱的意思啊。哎,取款的意思啊,那取款的话呢,这就看你一开始,如果你输的是个二的话呢,那直接就蹦到这儿了,说请输入取款的金额。取款。
31:02
取这个啊哎,接下来呢,你接着又得是写一个这个值是吧,诶CTRLC啊这块。CTRLV啊,这个我们比如说写个二吧。好,那么这个额的话呢,你也得是个正的啊。嗯,有同学可能会想说,那我就直接不管三七二十一,我就首先呢,就balance呢,就减等于这个MONEY2了。对,就这样写的话呢,是一般的场景,当然我们写代码的话呢,要考虑到这个健壮性的问题是吧,当然这个健壮性的事儿呢,它是一个没有头了啊。就是你要是让他健壮的话,其实你可以无限的去加好多的条件,哎,就是适可而止就行啊,就是咱们跑的好多代码在线上跑着呢,你说你这个代码呢,是不是说就极其健壮呢?要挑问题总可以挑出一些问题的,是吧,当然呢,你你你得。99.9%,你可能都不能出现问题的啊OK。行,那么这块呢,我们最好呢,加上一个一的判断啊,首先你这个玛尼二呢,你得大于零啊。并且。
32:00
对,你这个balance,这个玛尼二呢。你得小于等于。Balance,你不能超这个超了啊,那成信用卡了。嗯,然后呢,这块就做个减等于,那至于说呢,你这个,呃,要是这个这个不满足这个情况呢,有可能是你这个写的是负的,也可能是你这个。想要取得多了是吧?哎,你可以给大家来个输出语句也行啊。那这个呢,就输入的这个。呃,数据有误是吧,哎货呢,这个叫余额不足是吧,诶上面这个我就没有写else啊,上面你要整个负数呢,它就默默的结束了。没有进入一就行啊。好,这个呢,我们就加了个它,嗯,这是不是也就完事了。嗯,然后第三项呢,叫显示余额,这个比较简单。哎,这个我们就直接打印哈。呃,账户。啊,余额。
33:00
啊,加上一个balance。哎,保存,哎这个事儿是不是就结束了。哎,这个呢,这个叫退出,那退出这块你可以再给大家写一句话啊。对。感谢使用啊,欢迎下次光临是吧?来,欢迎。哎,下次哎光临啊。这个来一个。小笑脸是吧?啊,这完事了就啊。来我们做这个测试,那就先呢编译,哎运行诶出来了啊,哎,首先我们来一个三。显示余额啊,0.0。显示余额0.0,好这块呢,是不是又把这个界面又调出来了,然后这时候呢,我们来一个存款啊,来一个一。呃,存呢,比如说啊100块钱。好,另外我们再显示是三啊,账户余额100块钱,好点一个二取款,取款呢这个300。
34:01
哎,不行是吧,哎,再选个二取款选一个,嗯。30。诶,这个呢就取成了,当然呢,你这块你也可以打出一性话,打一句话说这个取款成功是吧,哎也行哈,包括上面这个存钱的时候,你也可以加个存款成功,就加个输出语句就行了啊然后呢,这个我们再来一个三。呃,余额就剩70块钱了啊,然后呢,四退出。诶,欢迎下次光临,诶没问题。好,这呢,就是我们写的这样的一个,诶,算是稍微有点意思的这样一个题目了。OK啊,然后呢,这个呢,大家写的时候呢,也可以考虑,你看我用while写啊,是不是也可以把它俩重新整合一下。好,那么关于这三类循环呢,我们就告一段落了啊,然后呢,最终这块呢,我们刚才也稍微提了一下,就是他们呃,这样的一个相互之间的关系哈,然后呢,如果细节来讲的话呢,我在这个课件里边也稍微写了写。嗯,在这儿啊,有个对比简单的,大家来看一看啊,首先呢,作为三种循环结构呢,都会有四个要素。
35:00
啊,这不用多说了啊,然后呢,从这个循环这个次数来讲的话,多要循环说至少能执行一次,哎,他俩能不能执行得看循环条件了。啊,这一个,然后在实际开发当中,大家该如何去选择。哎,这块写的啊,说便利的时候,这真是开发中的这个实际经验了啊。便利的时候呢,如果你发现有明显的循环次数的要求。这个呢,我们推荐呢,使用for。比如一上来你去便利一下,100以内的偶数啊,奇数啊等等的是吧,就走这个啊,然后呢,便利如果没有明明显的这个循环次数的这个建议呢,你使用这个well。啊,这个比如说呢,这个你去,呃,咱们像刚才那个提到的这个大了小了是吧?哎,这个你再去输个数,又大了又小了,像这时候没有明显的循环次数了,这个你用Y写的时候呢,就就会有点尴尬,就因这个I等于几,I小于多少,不知道要循环几次。所以像这种没有明显的次数的,就建议呢,你用will啊,然后呢,如果说这个循环体呢,就是保证不管这个条件满不满足,至少得执行一次,你再去用它。
36:05
哎,这呢,就是基本上这样的一个场景。下边的先不用看。啊行,这呢,就我们说的这个事儿好了,那么关于这三类结构呢,咱们就说完了,然后大家呢,针对咱们讲的这些呢,也有好多的课后练习题写一写。
我来说两句