00:00
行外要督外循环结束以后,我们关于这个三种的基本的循环结构呢,就都讲完了,然后接下来呢,我们通过一些知识点呢,呃,这个一些题目呢,再讲解一些新的这个知识点,比如说我们看这道问题好,看这道问题说从键盘呢,输入个数不确定的整数,并判断读入的正数和负数的个数,当我们输入零的时候呢,程序结束。这是这个题目啊,我们接下来呢,剖析一下啊,从键盘呢,首先呢,确定一点,就是读了很多的整数,每次读一个,每次读一个,咱们知道你要读整数是不是一定得用这个方法对吧?哎,那你要是读了很多整数,意味着这个方法就要掉很多次,那自然而然的就应该作为一个循环体出现,所以这个题目呢,就是一个循环的问题。好,既然是一个循环的问题,咱们通常呢,都得想清楚它的这几个部分啊。
01:06
比如说像我们说你变了一下一到100以内的偶数啊,那咱们知道哦,这个时候我怎么去设计这个结构,尤其是像这个循环条件,哎,我得知道呢,你不能超过100了,哎,那是这个问题中,大家看一下能不能明显读取出来,这个循环大概要执行多少次。确定不了,对,因为这里边明确说了,它读的个数呢不确定,哎,我呢是以什么判断这个程序终止呢?当你输入零的时候就终止了,也就是说当你输入零的时候,这个循环就结束了,对你要不输入零的话呢,这个输入正的负的这个程序是可以一直执行下去的啊,至少它也有一个终止的一个情况啊,你要完全的没有终止的这个情况,那就是一个死循环,呃,这个题目呢,它不是一个死循环啊呃,那这里边呢,就涉及到我们怎么去终止一个这样的一个循环结构,呃,这个包括呢,就是我们这个所谓的在这个循环的这个条件部分呢,不能够确定到底要执行多少次的,这个问题该怎么解决好,把这个呢CTRLC拿过来。
02:17
嗯,这我在对零五下再新建一个啊。哎,这个是综合的一个题目,我这样写吧,我写成这个for while啊这样子来可一个测试来过来。保存诶先这样啊,CTRLCCTRLSCTRLV行,嗯,今天呢,是咱们这个在使用这个editid plus的最后一天了,嗯,好好的这个怀念怀念哈,后边呢,咱们就直接呢鸟枪换炮开始用eclips了啊嗯,来看一下从键盘的读入个数不确定的整数啊首先呢,这个我们就一点点剖析,就大家呢,有时候拿到这个题目的话,感觉一下子没思路,没思路,你就看看你根据已有的这个条件你能够得出什么,所以大家你要上高中的时候,应该那个数学老师啊等等也应该也是这样讲的啊,尤其是像这个高三总复习咱们做的那些题目呢,都是这种综合性的题目啊,有的确实有难度啊,那个一般比如给了你很多这个条件啊,肯定是啊,那这个题目呢,读完以后发现不会做啊。
03:39
老师当时说过,说千万不要空着是吧,只要写就有分是吧?对,就是怎么去得分呢?其实有确实有技巧啊,就是你像你第一句读完以后呢,你虽然这道题你可能不会做,你读完第一句以后呢,你发现通过这一句你能得出点什么信息写出来,大家都做过那么多的这个训练了,是吧,你得到通过这一个问你大概能得出点什么东西,这个多少是可以写一写的,写一写这个呢,你也写一写,因为这道题你想他要做出来,他有很多的得分点,你这里边每一个都这样写一写,你一不小心是不是就踩中好几个呀,踩中哪个哪个就有分是吧,然后二分,二分,二分,然后最后一家整体15分,你看这题不会做,得了八分。
04:21
啊,这是很有可能的这种啊,当然了,更巧更更有意思,就是你发现这题不会做,写吧,写着写着写着发现诶出来了是吧?哎,真有这样的情况,哎,咱这也是一样啊,你拿到这个题以后呢,整个一看没思路,不会做,那你就是读一点,你看你能干点什么啊,比如说从键盘读入,哎,一看哇,Import就来了是吧?哎这个时候呢,你就可以从键盘去写了,哎,那就写呗,从键盘读入个数不确定整数,那就先写个1PORT java.u to.s scanner,然后呢,你要想用scanner,那就先实例化,哎,Scanner,哎,system.in这么着啊呃,接下来的话呢,去读这个整数,那就用scanner这个对象啊,Next in的方法,哎,我们去得一个具体的数值,行,那现在的话呢,他说读读了个数还挺多的,那这里边。
05:22
那像这个操作反复的要被执行,那就得写到while里了,或者写到for里边,写哪个都行,写个while吧,比如说啊,写到这个while循环里,While号循环呢,长这个样子,还把它那放进去,哎,有没有同学会想着把它也放进去,可能会有啊,那现在就是考虑要不要把它放进去,不用啊,不用,当然呢,你要放进去以后呢,从运行结果上来看没问题,只不过呢,我们没有必要,是不是说每一次都造一个对象呀,对对,就是你这一个scanner的对象就可以帮你搞定的事儿,就不要再用很多了啊,就这个意思啊,行,那这呢,就是咱们所谓的这个叫循环体部分了啊,那这块我们就得去构建这个while循环的几个部分了,嗯,像这个所谓的初始化条件,初始化条件呢,其实这就涉及到后边这个情况了啊呃,我们。
06:22
嗯,先先不读那了,然后关键的就是这个位置怎么写哈,叫循环条件,咱们前面讲的这个循环的话呢,这块都会给出来一个根据你这个初始化条件啊,比如说I等于一啊,I等于小于100,哎,这叫循环条件了,但现在呢,这个题目中它没有明确说要循环多少次,所以这个位置呢,我们其实没法固定下来,哎,这个时候呢,咱们讲一个写法,哎,就是写一个well处。啊,写一个well true well true true就是这个布尔类型呗,咱们说了这个while第二部分呢,循环条件部分就是波尔类型,哎,这个是处的时候呢,就进去执行,是false的时候呢,就不进去了,哎,咱们要是写处,好像说这个程序是不是就一直的停不了了,嗯,从这来看呢,是这样子的,但是咱们前面是不是还讲了一个break呀,诶对,也就是说呢,咱们去结束一个循环的话呢,其实可以通过这个循环条件,哎,我讲课的时候前面都写了一个叫通常情况下是吧。
07:34
诶,忘了写哪了,就是通常情况下呢,我们都是通过这个去结束的,但是不一定啊,咱们还可以用break的行,那这里的话,我们就把它呢,哎,就写成一个处,这就是咱们这里这个题目呢,要讲的一个新的知识点啊,哎,就是不通过这呢去控制这个循环的次数了,这写成一个处,或者说呢,有同学说写处怎么感觉很感觉很别扭似的啊,你写别的也无所谓,这样行吗?一等等于一可以,只不过你就多了一步判断呗,判断的结果不就是还是个除嘛,干脆就写成除得了啊,这是最简单的一个写法。
08:16
呃,Y处,然后呢,每次循环进去,我去获取一个值啊,获取一个值,接下来我们需要判断你获取的这个值是正的还是负的,需要记录一下个数,这不就相当于咱们那会计算这个偶数的总和,或者是偶数的个数,思路一样嘛,我们就提前呢,先定义两个变量,哎,正数呢,我叫做positive,大家早上不是读这个单词了吗?Number,哎,先让它是零啊,Negative,这也是零,哎,这个我们说了,这个不怎么熟的,这种单词呢,加上这个注释啊,用它呢来记录。
09:01
正数的个数记住负数的个数,OK,这呢其实就相当于咱们的初入法条件啊,当你是一个处的时候呢,我们进去一上来呢,先获取一个整数,接下来干什么?接下来是不是该判断这个number的正负了,哎,正负情况行,那如果发现number大于零,诶大于零是不是就让这个positive number加价呀,就不就相当于原来这个我们判断这个number是不是取目二等等于零是不是个偶数,然那个countt加价一样啊诶I if,如果number呢是小于零,哎,这个negative number呢,佳佳这样,那我们是不是得有个终止的。
10:02
情况,哎就是当你要是零的话怎么办啊,哎,Break一下,在这我们写个注释啊,说一旦哎执行break,哎我们就跳出循环,诶通过这样的一种方式呢,咱们也可以结束一个循环。这个题基本上就快写完了,就是吧,哎,有了这个先天break以后,然后最后呢,当你跳出来这个循环的时候呢,输出一下这个正负的个数,哎,我们说输入的这个正数个数为,再加上这个number。CTRLV输入的复数。
11:00
哎,我们这个negative number行,那这个题呢,其实就搞定了,哎就是你看你写着写着你发现这个思路呢,慢慢就能够捋顺了,就出来了,就啊,哎咱们测试Java c four well test Java好看这种呢,等着我去输入呢啊45 43 78负的98负的九好来个零,哎这三二行这个我就不再多去测了啊哎这个题目的话呢,我们就讲到这啊,大家看有没有哪块不清楚的吧。哎,就是现在呢,大家就需要呢,诶通过我上课讲的这个题目呢,你下来自己去写,自己一边写呢,一边去捋顺这个思路啊强化一下,诶这个题目我应该怎么去给它搭出来是吧?嗯,像这个题目的话呢,我们呃用到的这个结构呢,首先第一个呃得能够去从键盘获取这个值,这个呢是肯定你要会的,呃其次的话呢,诶我们这个操作呢,是要在这个这个循环当中不停的被执行,那一定要用循环了,呃循环呢又确定不了他要执行多少次,我们这样去写的叫Y处,哎然后接下来呢,哎,你就判断一下这个值哎的正负,这个呢,其实是算前面已经有过这个经验了啊,算这个旧的知识了,就是把这些旧的这个知识呢都集合起来,那咱们计算偶数的个数,那么都是这个经验了,嗯,好,就这个是一个新的知识点啊,这个呢是咱们用while来写的,那如果我要是不用well,我想换成for,怎么写呢?For长这样。
12:52
这个里边呢,它不是一个结构了,它是有两个分号的是吧,嗯,写完了就就写完了啊,就是如果要是while是它的话呢,For呢,就是这样写,你说这个可以的可以的啊,就是这个写的话呢,这个相当于出始发条件部分,没有没有呢,相当于就是走一下过场是吧?哎,接着到这儿,这也没有,这也没有,就认为它永远都可以。
13:21
就有点像这个,你经过一个原来以前这个,嗯,这个这个封建社会的时候呢,进某一个城,他这有个城门嘛,城门呢就得检查一下你是出还是false,这个呢,相当于是这个没有门,直接一入进去就得了,哎所以这块呢,就是任何都不放啊这个结构呢,跟它类似,就是它俩的效果是一样的,哎你看我们执行一下编译运行,哎没问题啊,然后43负的,98负的九零,哎也是OK的,哎行,然后后边呢,大家如果需要用到呃这样的结构的话呢,诶你就选择它或者它就可以了啊行,那这块我们把这个知识点呢说一下啊说明哎,首先第一个啊,这个我们见到了两个新的结构,呃新的这个其实也不能算叫新的结构啊,就是不在这个循环条件部分限制次数。
14:22
的结构啊呃,限制这个次数的这个结构啊,这个结构呢长这样子,哎要么呢就是for里边这样写,哎或者呢,大家就写一个well,呃写个well to啊后边呢,咱们看到系统源码的时候,有时候也会这样写的啊一个意思啊,不在这块就限制这个次数了,那你不在这限制次数呢,意味着我们像原来通过这个位置去啊结束循环的情况呢,就不存在了,那这呢,我们就需要做一个总结啊叫如何啊或者叫跳出循环啊,有哪几种实现方式啊啊结束循环啊有几种,这个方式有几种啊,咱们现在是不是就讲到两种啊,哎,方式一哎就是这个循环条件,哎部分就是返回。
15:22
False对吧,方12呢,对,在循环体中,哎,然后呢,执行break,哎就这两种情况,哎实际咱们开发当中呢,也就这两种情况啊,没有其他情况了,只不过呢,就是我们有时候写这个循环的时候呢,有时候呢,这个跟这个就都有啊就是这块呢,也指定过一个次数里边呢也有瑞,那就看谁先执行到那就谁执行呗,就这种了啊就是有有可能会出现在同一个循环当中啊,这个是有可能的,行这呢就是咱们这道题呢,想说明的这个知识点啊,一个两个,哎大家来体会一下。
我来说两句