00:00
好了,同学们啊,咱们接着看吧,好吧,那接着看啊,还是这个for号循环啊,这个for循环这块呢,咱们还没有说完,咱们接下来继续往下看这个for号循环啊,呃,那么这块呢,我们点右键新建一个four啊,TEST04。我们还是以这个案例的方式去驱动吧,啊,我们来看看这个写一个什么样的例子啊,嗯。我这儿呢,先写一个题目啊,大家先思考一下这个程序该怎么写。使用for循环。啊,实现一到100所有奇数求和。实现一到100所有数求和,这个该怎么做?应该是个循环对吧,哎,从一。二三四五六七八九十。
01:01
哎,这样一直取对不对,每个数据都取出来,是不是判断一下对不对,哎,判断一下。判断这个数字是奇数还是偶数对不对?如果是奇数的话就求和是吗?啊,就这个程序啊,有多种写法啊。这样吧,至少啊,给出两种解决方案。来public class four test04。啊。就是这个。第一种方案。我们先看一下思路啊。就是说首先啊,我们看到这个例子说是一到100所有奇数求和。那我们得找出基数对吧。
02:01
对不对,哎,找出基数,然后再说求和吧,哎,思路应该是这样一个思路是吧,先找出什么一到100。哎,所有的奇数。然后再考虑什么呀。求和的事儿。再考虑,然后再考虑求和的事儿啊,那么这块呢,我们尝试一下。第一步啊。我们先干啥呀。先从一。取到什么呀?100。一个数字一个数字取出来。那我觉得这个问题应该不是很大对吧?哎负怎么写1I等于几啊,你一到100呗,所以你就等于一就行了,是不是啊,然后I呢,小于多少啊。一到100,那应该小于等于对吧,你能取到100啊对不对,然后I干什么呀?哎,佳加这个I加加表示I变量自加一,这个I变量是自加,然后。
03:08
第二,Print line打印测试一下I。这个值现在是不是我们所想象的一到100来,我们Java c去编译一下TEST04就是Java啊,然后Java去运行for test04走。好,那看一下这个数据对不对啊,一二三四五六七八九十啊,一直往下直往下一直往下走对吧,走到一百一到100我们已经出来,就是这步我们完成了。完成了。是不是啊,那么这个第二步应该是什么呢?第二步应该是判断啊,既然得到,既然可以得到什么呀。每一个数字。那么我们进一步判断。哎,我们进一步判断。
04:02
这个数字。是否?喂。奇数。那么也就是说我们现在啊。是把所有的字都怎么着都输出你看。是不是?那如果我只想输出这个一。二不输出我输出三四不输出我输出五,那奇数都有个特点,奇数对二,求余数,结果是一。对吧,哎,基数啊。对二求余数。结果都是一,所以这个时候呢,你可能啊啊就得改良一下这个程序。就是说你可能这个代码有可能执行,有可能不执行,就是说你应该是什么呀,如果。哎,是奇数,哎,你在干嘛呀?
05:04
是不是在执行这个程序啊,如果说你外边这个不套这么一个东西,你里边直接写这个。那我觉得他就会把100都给他输出。你可能需要加一个判断对吧,If,如果这个I是奇数。哎,我们怎么办,把它挪进去。那I是不是奇数呢?哎,对,二求余数等于等于一。哎,对,二求余数等于等于一的情况。那么我们认为这个I它就是奇数,就是I为奇数的条件。啊,I为奇数的条件。所以现在呢,我们再去编译这个程序,再去运行。好,大家看一下这个数据啊,就变成一三五七九十一十三对吧,到我们最后的99,这样的话,就相当于是说我们把这个叫做。
06:04
哎,奇数就取出来了。基数取出来了啊,但是呢,大家看看啊,人家这个题目的要求啊,不是让你把基数输出是说呀。求和的事儿。求和的事儿啊,那么我们怎么求和呢?好,大家看啊。我们可以在for循环的外面。准备一个变量。比如说我们就叫做萨。初始值可以给他一个零。初始值给零啊,那如果这个条件成立的话,我们不再输出这个I了。干什么呢?我们让萨加。这是累加,是不是累加加等这个符号还记得吗?
07:03
加等的符号的意思什么意思啊,就等于sum等于sum加I对吧。那么也就是说啊。我们只要是说I的值是一个奇数,那么我们就把这个数干什么呀,给它加到这个sum上,Sum原先等于比如说零对吧?哎,那最初的时候。我们这个是零。对吧,然后的值等于一,那这个是几?那上之后是一是变。对不对,I sum变成一,那么接下来我们这个程序结束之后,进入下一次的,进入下一次循环I加加加加之后呢,I仍然是小于什么呀?哎,100的小于100之后怎么办啊。然后我们继续判断,如果填成立的话,那一再往下一个基数是什么呀?是三吧,对不对?哎,那这个原先的sum是等于几呀。
08:01
上轮萨等于几啊一嘛,一加上什么呀三啊。那一加上三之后呢,等于四四呢,付给some some现在是不是四啊。对不对,哎,再加加加之后呢,再判断对吧,判断之后呢,如果条件成立的话,哎,假如说一基数嘛,对不对一三。五对不对,哎,那这个时候呢,就变成了五嘛,是不是,那如果是五的话,我们条件成立的话,Sum这个sum应该等于几啊,一加上三就等于四了吗。对不对,再加等什么呀。那相当于这个是四,这个是五呗,四加五是九,那这个三不是九吗。对吧,然后再加加往下哎,一直循环一直循环,就把最后的数据算完,然后放循环结束啊,一定是在for循环全部结束之后啊,输出输出的萨就是最终的结果。
09:03
Some。就一到100,所有奇数的和。一到100。所有基数求和。结果是。对吧,这样去写这个程序。啊,For循环与if语句嵌套。For循环中。嵌套了if语句。啊,循环嵌套啊,不是循环嵌套,就是放循环里面见到if。嵌套一下啊,因为在循环过程当中,你想你取出的每一个数据,你你怎么知道它是奇数还是偶数,你判断一下,如果是奇数的话,哎,你在累加嘛,哎,如果是奇数你就累加嘛,是不是好,大家思考一个问题,这个sum等于零,能不能放到里边,能不能放到方关里边去做去明。这个能不能放到里面去声明。千万不能啊,千万不能,你如果放到里边声明就会有问题。
10:02
你放到这个里边的话,这个循环每一次来的时候,这个大块里面每次执行的时候都会把sum归成零,你好不容易前面累加累加累加累加已经累加了,然后叭叭叭过来之后,下一次循环来归零,就相当于啊,你在使用你们家的计算器,对吧,你一加一再加二,再加三加四。对吧?哎,你每一次一加二的时候归个零,再加三再归零,你最后你你这个这个数据肯定是不对的呀,所以说你这个声明位置要注意啊,不能在这里声明啊。不能在。这个循环体中声明啊。这样会。导致什么呀,归零。计算机归零啊。所以这块呢,你应该在for循环的外面去声明这个值,然后每循环一次干啥呀,在这个循环体里边一直是追加累加累加累加对吧,奇数累加一次是奇数累加一次,是奇数累加一次,最后全部结束了,在外边输出这个最终的执行结果啊,要注意位置加va c变for test04.java然后Java去运行for test04走。
11:16
最后结果是两千五啊2500。这是我们的第一种方案,各位啊,第一种方案,那么二种方案是什么?第二种方案呢,大家看这样写行不行?比如说for循环对吧,I int类型的I等于几呀,一对吧,然后I呢,干什么呢?小于什么呀,哎,100。100我们本身知道它是什么呀,是一个偶数,所以说我们直接不要等于了啊,直接小于100。那紧接着我们在这个地方写一个I加等二不就行了吗?是不是这样的话,每一次取出的这个数据是不是一定是奇数啊,点打印输出啊,我们输出我们I的值。
12:04
来我们再来看Java c呢,去编一下我们这个程序,Java去运行啊,大家看本身我们输入的这个值是不是就是奇数啊啊就是奇数啊,你这里就不用判断,因为你一次加等二啊,你一加等二就变成了三嘛,三加二就变成五嘛,所以你可以保证每一次循环取得这个I一定是奇数。啊,这样写可以保证每次取出的I一定是奇数啊。这样写啊,可以保证每一次取出的,每一次取出的值都是奇数啊,都是奇数,不需要判断,不需要判断啊,你从一开始每一次累加。那13579是不是,哎,你小于不用等于啊,因为100是偶数,你小于100你取到99就可以了啊,那么接下来你可以在这归零啊归零。之前的萨归零啊。重新求和啊,所以这边some可以给它重新个值,就是零嘛,是不是接下来在这怎么着啊,Some加等什么呀,加等I就行了,然后加来c.out点打印输入怎么样?哎,我们sum的值就可以了,来那我们来看一看Java c呢,去编一下Java去运行好,最终结果是不是还是两千五啊。
13:19
没有这个问题吧,那么相对来说啊,这种方案,这种方案效率高啊,因为循环次数比较少。啊,因为循环的次数比较少。啊,这是一个for循环,一个比较经典的案例啊,比较经典案例这个一定要归零啊,如果你这个不归零,你前面这个sum的结果是2500,你再往下。就最后结果就变成5000了吧,Java c变Java去运行是不是变成5000了是不是,哎,你记得归零啊,归零重新开始计算,就这个意思,当然你还有一个办法,就是你可以声一个别的变量呗,对吧,叫萨摩2Y等于零是不是,哎,你可以不用它呀,对吧?哎,也行,但是我这里呢,就懒懒得去声明一个新的变量了啊,还用原先这个变量,所以我给它归零一下啊,归零之后呢,诶再往下呢,给它累加,累加之后呢,哎,给它输出就行了啊,你这个不能放到这个里边啊,你放到这个里边就相当于你累加一次,你输出一次,你累加一次输出一次,应该不是这种节奏,对吧。
14:19
啊,你累加一次输出一次,你看Java c去编译Java区,你累加一次输出一次,结果是这样的对不对,哎,我们要的是最终的一个结果就行了啊,所以这个时候呢,应该在循环外边输出,对于初太。习惯就好了啊。
我来说两句