00:00
好,那么关于三种循环结构呢,咱们就算是告一段落了啊,然后大家下来呢,先把这块呢先练一练啊,然后呢,其实从这个知识点上来讲呢,我们后边啊,下边再要讲的叫无限循环或者叫轻量循环,实际上的话呢,就呃没有什么新的知识点啊,只不过呢,针对于我们实际在开发当中呢,遇到一些特殊的场景呢,诶我们可能呢,呃,写的这个代码呢,不像说之前的那么规范了。哎,这块我们来看一看啊,相当于针对循环,循环这块呢,再给大家呢,讲两个内容,一个呢就叫做无限循环,一个呢叫签到循环,当然了这个无限循环呢,我加了一个双引号。这个咱们上语文课的时候呢,讲过这个啊,有的时候呢,这个加双引号作用呢,表示的是加重的意思是吧,就是强调的意思啊,然后呢,还有时候呢,表示的意思就不是真正这个意思的,这样的一个意思啊。啊,那这呢,我们就是第二种这个无限循环呢,表达的意思不是说真正意义上的无限了,只是说呢,从这个呃循环的这个格式上来讲呢,看似好像说呃循环的次数呢,是无限四。当然了,肯定不能是无限次,那就成死循环了,OK,行,那这块呢,我们来看看这块儿啊,涉及到这个知识点是什么样子的。
01:05
啊,首先呢,我放了一个图啊,这个大家呢,你下来自己看一看就行是吧。哎,就出不来了啊,然后呢,一直就这样呢,在里边绕着呢,啊类似于一个无限循环一样,或者叫死循环行,那么我们这里边儿呢,涉及到这个结构呢,是长这个样子的。当然这个结构呢,不只限于这两种啊,哎,只不过这两种呢比较典型啊,哎,如果呢,大家看到一个外号循环,这个呢叫循环条件部分呢,我们写的是个处,那就意味着他就可以不停的去执行了。啊,因为这呢还写的不是个变量啊,那个变量你里边呢,还可以把这个变量的值改一改,然后呢,进而呢,哎,让它是false,现在我就写成是一个自变量啊,一个常量处,那从这个意义上来讲呢,它就出不来了。啊呃,看似这个形式上呢,它就是个无限循环,但是呢,我们讲结束一个循环呢,除了这个循环条件之外呢。对,还可以在内幕呢使用break嘛,诶所以这种结构呢,我们就在里边呢,使用break啊,那这个呢,就是针对于for循环,我们呢,说这儿呢,放这个初始化条件,循环条件,还有迭代条件,那么主要呢,关于这个循环条件这块呢,我什么也没写,那我们就看作呢,你就是一个初。
02:11
那相当于呢,这个结构跟这个结构呢,是一样的道理啊,所以呢,在实际开发当中,有的时候呢,我们并不确定需要循环多少次。哎,那么这个时候呢,我们就可以呢,在循环体内部呢,控制一个条件,说你这个条件怎么样满足的话呢,我就退出循环,那咱们就使用break,那么在这个具体的次数这个层面这块呢,我们就写成一个看似像无限循环这样的一个特点啊。啊,但是呢,我们必须在里边得用break啊,否则的话呢,就是死循环,开发当中大家一定要避免出现死循环。啊,你像这呢,我们写这个案例呢,案例一呢,其实就相当于是一个呃死循环这样的结构,写代码的话呢,不要这样去写啊,程序的话呢,或者我们的一个算法,算法呢有几大特征,其中一个特征呢,就叫做有穷性。就是你这个程序呢,你得能够执行完,你不能说我写个算法正在运算,你说这个结果出来了没,你说等一会儿可以,等一会儿没问题啊,你说出来没再得等一会儿啊,问了好多次,说到底什么时候结束,你说这个结束不了。
03:09
那我要你这个算法干什么呢?是吧,哎,你这个算法呢,一定得是有穷性的哈,那这个呢,也必须得有结束的一个时机,行,那这块我们针对这个所谓的无穷,哎这个无限循环这样的结构呢,做一个说明,这呢我就写成一个for啊while。没有啊,关于它的一个测试啊,这样来写了,CTRLCCTRLSCTRLV保存一下。哎,在这我们做一个说明啊。哎,这个呢,哎无限啊循环。哎,结构的一个哎使用啊,注意这个无线的话呢,不能是真正意义上的无线,所以呢,只能加上一个哎引号啊,哎这里边呢,首先第一个从这个格式上来讲。哎,这个呢,我们可能会去在代码中呢,诶这样的去写这个逻辑了,哎外处那针对这个for循环的话呢,诶就是这样的一个情况了。
04:01
行,那比如说刚才提到说啊爱你到永远是吧,啊这个一直说这句话啊,这个出不来了,这个呢,就没有具体的一个循环的结束的条件了,我们就可以呢来写一个叫well,这块呢,就写个出了。哎,把这CTRLX啊。哎,粘到这儿。啊,这个写个英文的吧。这样是吧,哎,保存一下来,这个时候我们做一个执行。加C。For。Well test.java。哎,你看这个编译的话呢,它是不会报错的啊,哎,编译呢不会报错,就是因为呢,我们这个程序呢,你个语法是满足的啊。红蜘蛛是吗?啊,重播一下啊。好了吧。嗯。哎,其实正常的话呢,要掉线的话呢,其实你把网线插上,哎一会儿就有了。应该是啊好,然后呢,接着来说,从语法上来讲的话呢,这是没有问题的啊,然后接着我们再去Java啊,For啊,Well的一个test啊,一回车,那这时就完不了了啊。
05:06
这个呢,就是我们所说的这个叫死循环啊,其实。啊得得得得听我得听一下啊。OK,这个知道这个事儿,呃,然后呢,说到这儿的话呢,顺带我们再说一个啊,你看在这个结构的情况下啊,我这个呢,写一个输出语句。哎,这呢,我写一个set。啊,比如不妨呢,我这块儿就写个N啊,那很显然的话呢,如果我们分析这句话呢,肯定执行不了。对吧。嗯,那我们看一下这个从语法上来讲啊,走起你看这块就报个错误哈,在第14行说呢,无法访问的语句。那这个你要换成英文的话呢,就是unreachable。Reach就是可以到达是吧,Reachable呢,就是可到达的unreable就不可到达的,不可访问的,哎,所以说呢,你要是这样的一个循环结构呢,后边呢,诶,它也不能有相应的这个执行语句哈。啊,这个。这个相当于是一个,咱也可以理解成就是一个死循环了啊。
06:03
这个后面不能有啊,执行语句了,哎,当然这块呢,你你你不能说这块有问题,其实主要还是得改这个代码。啊,我把这个呢,就给大家注释一下啊,那如果说这个呢,Well to啊,你想改成用for来写的话呢,你就。哎,这样来去写就行,跟刚才那是一个道理。来编译。哎,运行啊,也是一样啊,CTRLC一下。给他停掉了。行,那有同学说呢,你看我这个放循环这块呢,我我这个啊,咱们主要关注的其实这个循环条件,你说我这块什么也没写,那我能不能写个出呢。可以吧,哎,肯定可以。没问题是吧,那我再CTRLC了啊,写肯定没问题,咱们现在讲的是你最简单的一种格式。就好比这个位置呢,你说我写成个处,我不写处,我就写上一等于一。是吧,啊,你给我写一不等于二。啊,你怎么写都行是吧,只要这个最终结果呢,它是一个出类型的就可以了,只不过呢,最简单的话呢,就写成了出。
07:01
啊,这个大家注意一下就行了。好,这呢,我们把这个把这个结构呢,就给它来注入掉了啊好,那我们讲它的意义是什么呢?哎,刚才提到说在开发当中啊,我们有的时候呢,是会这样的去写的啊,所以这两句话呢,大家需要去关注。啊,开发当中什么时候我们会去写这样的结构。啊,但是注意我们写的话呢,里边要用上break去结束循环,然后第三个的话呢,如果要没有break,这就是死循环,开发中要避免死循环。好,这个事上就结束了,然后下边的话呢,我们来写一个具体的题目,哎,大家呢,去感受一下,诶我们呢,使用上了,哎刚才说的这样的一个结构。这块我们新建一个。Four。Well。彩色一啊。这样啊,好,来看一下这个案例。那这样的说呢,从键盘读入个数不确定的整数。并判断读入的正数和负数的个数,输入为零的时候呢,程序结束。
08:05
也就相当于我们得通过一个循环的方式呢,不断的从键盘呢去读入整数,然后它给我们去判断一下,你这个整数呢,是正的是负的,呃,然后呢,你输一个之后呢,你就接着再让你输,再让你输,直到你输入零,这个程序呢就结束了。哎,这个相当于就是我们结束循环的一个条件。呃,然后呢,到底说循环了多少次呢。完全不确定。那我们就可以使用刚才提到的这样的这个结构啊来表现。好了,回过来啊。首先CTRLCCTRLSCTRLV来保存一下。哎,来咱们就开始去处理这个问题了啊嗯,处理问题的话呢,首先这块提到了说这个scanner了,哎,所以先把这个scanner呢先结果呢整到啊正点U9点。哎,SC啊,诶先创建它的一个对象。诶这就可以了啊好,然后呢,这块嗯,你要怕忘了,你就先给他把这个close呢,先调一下。
09:05
诶前面这块呢,我们需要呢,去这个提示用户说你输入一个整数了,当然这个整数的话呢,我们需要呢,诶不断去提醒用户,那不妨呢,我们从这个位置开始就开始写循环了啊。哎,这个循环的话呢,哎,如果你要用外处呢,用它,哎你写成for循环呢,跟刚才这个结构一样都可以。好,那么在这里边的话呢,我们上来就提示用户呢,说请输入一个整数。哎,请输入一个哎整数,然后这呢我们来个冒号啊,然后在这个位置呢,哎,稍微呢提示他一下啊,哎,输入为零时程,哎,结束程序。啊,这样的一个情况,然后这个换行呢,比如我也不要了,直接呢,就在后边呢去输入了,通过这个SC呢,诶我们去调next in这个方法。这样呢,我们就得到了一个,哎。张数。哎,这呢,我们写一下啊叫诶获取用户输入的这个整数。好了,那么这个整数的话呢,可能是正的,可能是负的,也可能是零。
10:04
那我们下边呢,就需要呢去判断了。哎,如果啊,你这个number是大于零的,相当于你是个正数。哎,那这时候呢,我们需要做的事是什么呢?啊,它最终呢需要呢,哎,要计算一下你输入了几个正的,几个负的是吧?哎,那这时候相当于我们就类似于前面做那个偶数的个数一样啊,哎前面是不是得定义两个变量了。哎,对啊,哎,一方面啊,我们第一个呢,叫。对COUNT1啊,COUNT1呢,稍微的抽象一点啊,这个叫正数的个数,正数呢叫positive。At number。啊,正数啊,Number的一个count吧,或者就直接count吧,简写一下啊。好,这个呢,我们先定义成零,它呢来去记录,哎,正数的一个个数。In了一个叫negative。哎,Number啊,它的一个count是零,这呢,Negative就是复数的意思啊。
11:04
的个数。行,那这个我们就定义好了啊,这呢就是这个单词啊,有不熟的顺带呢稍微记一下,嗯,不行,你就再写个C1C2是吧,哎,先把这个逻辑呢整个清楚之后,后边慢慢像这些单词呢,该记的记一记。好,那么如果你要是个正数呢,我就让这个变量呢。佳佳是吧。哎,加下就行了,然后else if。哎,你要是小于零。对,就让这个变量呢。加加是吧。啊,Negative呢,佳佳。然后呢,再来个L。那就说明呢,你是零了。哎,零的话呢,我们说呢,就结束当前这个程序是吧,哎,主要的核心逻辑呢,我们要写个break。哎,写完breakdown呢之后呢,我们可以说呢,在提示用户说程序结束是吧,那我能在这儿写吗。对,显然不合适啊。哎,程序结束啊,这个呢,你应该把他俩颠倒一下。
12:02
哎,Break呢,一旦执行呢,这个后边就不能写执行语句了啊。好,那么整个循环的结束呢?依赖于我们的break的执行。哎,如果呢,你输的不是零,那它就一直呢,就在这里边儿。哎,执行。这是这个负数。这个呢,就我们输入的是这个零啊,当你输入零的时候呢,执行break,这个循环呢,就结束了,循环结束我们在这个位置呢,去。打印一下说你这个正数和负数的个数。说正数的个数为。哎,加上这个呢,单词比较长,建议呢,你就不要在这发挥了,那我自己呢去写,写着写着写错了是吧,你还不如这样呢,CTRLCL一下。对,这样粘过来啊OK。哎,粘过来这个是负数。哎,它的个数为啊,然后最后CLOSE1下行啊,安姐来就。啊,那这时候你说这个close,我把它放在这个位置。
13:03
还是放在这个输出在这个上面放这儿行吗。对,他是可以的,对吧,他这没事啊。行,来,我们做一个测试。哎,编译好过了。哎,运行这呢,说请输入一个整数,给我们来个12。来一个32,来一个负七,来,我就直接来个零了啊。哎,是不是两个一个。哎,这就可以了。行,这呢就是咱们这道题啊,这道题啊,行,通过这道题呢,主要呢,大家要体会的就是我们这个while处这样的一个结构的一个使用,包括呢,我们for循环是吧,你把它这个给注释掉。哎,咱们呢,前面换成这个,换成这个for。哎,这样,哎跟刚才用这个呢,是完全一样的道理,以后呢,我们看源码的时候呢,有一些具体操作,他也会去用这样的结构的,这个当然我们也能看得懂就行,这呢也诶理解成是我们平时开发当中一个基本的一个使用。
14:02
啊,这个大家去体会一下,包括呢,前面我们写的这个题目哈,像这道题。啊,正好我一找就找着了啊哎,回忆一下这道题呢,说随机生成一个100以内的一个,呃,随机数哈,呃,然后呢,我们这块呢,去输入一个数,说大了小了,然后看猜对没猜对这个题目的话呢,其实这个位置呢,按说呢也确定不了要循环多少次嘛。因为可能老猜也猜不对是吧,哎,所以这道题的话呢,我们其实也可以用well出。哎,你要是用外处的话呢,里边呢,就呃,有可能是不等的,大的小的也可能是等的,在等的时候呢,你是不是用break就行。对啊,其实这道题呢,我觉得用外处呢,写起来感觉好像更顺一点似的。哎,这个大家下来呢,可以试着呢把它改一改。哎,OK啊行,这个呢,就咱们提到这个叫所谓的叫无限循环,注意呢,只是从形式来讲呢,像是个无限循环,其实不能是此循环啊。诶,它的一个基本的使用熟悉一下。
我来说两句