00:01
那么咱们这个题目再往下是编写一个方法,输出大于某个正整数N的最小的质数。这是个什么题目?嗯。来。Homework。这块的东西咱们还是要看一下啊,Public class homework2,然后public。写一下static voidman。这这这不理解题意吧,这个应该是。我来,我来说一下这个题是啥意思啊。嗯。好,他编写一个方法,输出大于某个正整数N的最小的质数。
01:02
编写一个方法。输出啊。大于某个正整数N的。最小的啥意思?就是比如比如比如比如。比如N是二。比如这个正整数N是二。也就是要输出什么。大于什么?输出大于什么某个正整数N,正整数是二的话,假如说也就是要输出大于二的最小的什么质数。那结果就是。300。对吧,哎,就像这个林森说的,例如五,那就输出七。
02:05
就大于二的最小的质数。比如说比如啊,正整数是正整数,N是九。九啊,正整数N是九,假如说也就是要输出大于九的最小的质数。大于九的最小的质数结果应该是多少啊,11吧。是不是说白了,我们就拿到这个正整数N之后往后加加就行了。拿到这个正整数之后加个一,加个一之后判断一下它是不是质数,如果是质数就输出。是这个这个这个这个这个这个思路是什么。就首先啊,首先就首先啊,系统一定会先给你一个什么。
03:04
系统一定会先给你一个正整数,N是肯定的。正整数N是肯定的了,系统一定会先给你一个正整数N,然后怎么着啊,然后你基于这个。嗯,往后。加加。啊,每加。每加一。得到的新数。判断一下。每加一得到的新数,假如说是M吧,M啊,每加一得到的新数M,判断一下是否为质数。最小的吗?
04:01
最小的。大于九的最小的质数是11,而不是13啊。那大于11的最小的质数是几啊?就比如大于11的最小的质数。是13。大于11的最小的质数是13。没毛病吧?哎,这个理解不。那假如说你现在让。来,你你你可以先在这写一写啊,假设啊假设。假设目前系统给了一个正整数,正整数N。NV。五对吧?In n等于几啊?五那你请找出什么?
05:05
大雨。五的最小的质数。现在你就你同学们,你发现有没有一个规律,就是现在大家可以不一定非得上来就写方法,你可以先在焖放里面写代码,写完代码之后,你把这个代码提取出来,放到一个方法里边,你你你现在可以这样做,你没必要说上来我就我就去去写一个方法出来,你没那个能力啊,你就别逞那个墙了,好吧。假设目前系统给的一个正整数NN为五一的N等于五对吧?请找出大于五的最小的质数,那是不是应该负循环?还是说Y循环怎么着的,对不对?哎,用while循环行不行,用死循环行吗?一直循环,一直循环可以吗?循环干啥?N加加呀,N加加之后呢,If判断一下呗,如果N是什么质数。
06:00
如果N是质数。对吧,就是说N加加之后呢,这是N怎么着,N字加一啊,加一得到一个新数吧,啊目前。继续判断啊,判断此时的N是否为质数。对吧,哎,如果。是质数谁呀,N呗,N是质数怎么办?这个循环就结束了呗。啦。是不是哎break啦,然后人家要求是啥呀,就输出就行了。要编写一个方法,你看这个方法里边要求输出嘛。所以说不用返回值了,你就输出就行了,system.out点打印输出是吧,哎,输出这个N。
07:04
那这个代码该怎么写,各位。给个回应呗。没反应了。一到做这个题目就没反应了是吧。套衣服。我想了三个小时没做出来。再写一个佛。就用的for,把N作为形式参数。是咱们现在还没到那个地步呢啊,就先别提取方法呢,就先先这么着吧。
08:08
没写布尔表达式。行参加一位初始值,写条件判断为质数。就。现在是不是,嗯,加加了。对吧,哎,各位,我问大家一个问题啊,我们能不能单独写一个方法来判断它是不是质数。就你看啊,同学们就是就现在就跟我的这个这个编程思想啊,就差在什么级别知道吧。就差在什么什么地方,你知道吗?啊。其实差点就是对这个程序的一个方法的分离,到底分离几个?分离几个?你比如如果我开发的话,我先写一下我的思路,各位啊,我写完之后呢,你写不出来啊,咱们班应该是没有,没有目前能写出来的啊,能写出来估计也就只有一个学生。
09:04
啊,就一般要我写这个代码,我会抽取两个出来,一个方法是编写一个方法负责输出的,另外呢,我在这个过程当中啊,我可能会有一个什么呀,哎,可能需要判断一下N是否是质数的,那我就可以在这里啊定义一个方法,定义一个专门的方法。对吧,来判断某个数字是否为质数,这个方法的行参是被判断的数字,哎。行吧,哎,这个方法的返回值类型。返回值类型是处,表示是指数。啊是false表示非质数啊,这就是我我我可以这样规定这样一个方法对不对,哎,Public一个返回不玩类型对不对,我们叫is对吧,Is质数。
10:00
啊,这是中西结合啊,中西结合。质数。叫is是否是质数?对吧,哎,是否是质数,那这个时候参数有个什么呀,叫做I呗,就这个方法来判断一下这个I是否是质数的,你明白,我这是单独定义了一个方法,这个方法它可以判断某一个数字。对吧?啊,可以判断某一个数字它是否是质数,如果说返回true就表示质数,如果返回false表示非质数,啊,就现在就摆在你面前,可能就有一个方法,这个方法是专门来判断是否是质数的嘛,反馈的类型是布尔类型,我们来挑战一下啊,你看你能不能听懂啊,能不能听懂。是否是质数is啊,Is质数对吧,那被判断数字假如说是number number number,数字nu,那么这个时候呢,我们可以对这个对判断啊,就是判断。
11:01
就是你怎么判断number是否是一个质数,质数怎么着质数只能被一和自身怎么着整除吧,是不是只能被一和自身整除啊?是不是,那你是不是应该对这个I,我们I等于几啊二开始啊,I小于谁呀,哎,Number吧,然后干什么呀,哎干什么呀,加加,哎,我为什么不在这等于一呀,我为什么不在这小于等于啊,我为什么是小于,我为什么选二啊各位。告诉我为什么这么写,假如说number现在是我不应该这么写啊,我这么写我估计大家听不懂吧。应该听不懂是吧。把上面的撇开先别看了,就是单独我写一个方法,这个方法来判断这个数字是否是一个质数的。
12:01
我判断这个数字是否是质数,你你给我传过来一个数字,我来判断你这个数字是否是一个质数的。我先说一下啊,这个我讲完你不一定能够听懂啊,不一定能够听懂啊,就单独这个方法是用来判断某一个数字是否是质数的,我再说一下各位啊,我是单独写了一个方法,这个方法专门用来判断这个数字是否是一个质数的,我可以就是你给我传过来一个十,我来判断一下,这个方法来判断十是否是个质数啊,你你你你你传过来一个一一百,我可以判断这个100是否是个质数,我判断的是一个number是否是一个质数,我判断这个数是否是个质数,这个方法最后返回布尔类型这个方法如果最后返回的是true,就表示说你这个数字它是个质数,如果你这个方法返回是个false,那就表示你这个数字啊,它不是一个质数,我就这么规定的。我就这么规定的,一般他要么是指数,要么不是指数,是还是不是,是不是就两种结果,在Java语言当中,它这个反馈类型测定为布尔类型是不是会更好一些。
13:09
因为不玩类型只有出个boss真和假,没有别的值对吧,所以有同学老师问我,老师我不太懂为啥这是不玩类型。嗯,这个东西怎么说呢,你你你现在没有这个这个编程思想,也没有编程思路啊,我说叭一下我就出来了啊各位这个这个这个这个其实挺难的啊,挺难的,这个东西很难去理解,很难去理解,等你实际开发了很长时间之后,你会发现哦,确实还是返回布尔类型比较好一些,因为我们这个方法的目的是用来干啥呀。目的是用来干什么?各位,我们这个方法的目的是用来干什么?目的是用来判断对吗?判断是不是,哎,某个数字是否是质数对吧?所以判断结果要么是指数,要么不是质数对吧?所以我规定这个方案的反回类型是不尔类型啊,合理不合理啊,没问题,有同学老师我就返回int,我就返回int,我返回一表示质数,返回零表示非质数,行行你愿意怎么弄怎么弄啊,但是呢,返回int不太好啊,不太好,因为零啊是int,一也是 int100它也是int,最后呢,哎就会容易出问题啊,所以这边的话,我们定义成不玩类型,那你只能返回处或者返回false对不对,哎,返回处返回false啊,所以这块我返回类型,我定义成不玩类型啊,判断是否是质数啊,给一个参数,你把这个参数传过来,我这个方法的执行就是为了判断你这个数字是否是一个质数吗?
14:29
对不对,哎,从二开始小于I小于number I加加,哎,你干啥呀,在这个过程当中,If呗,判断呗,如果你拿着这个number。对吧,对,我们这个I求余数等于等于零的情况成立了,哎,那你直接return一个什么呀?哎,Return一个false就完事了,程序能到这儿的话,Return一个true啥意思。啥意思?告诉我什么意思?
15:07
什么意思?告诉我,不,我不要求你能写出来,能看看明白不?I等于二。I等于二。你看啊,就假如说吧,我们传过来这个数字啊。是几啊是。十。如果取余数等于零,说明不是质数,对呀。这个意思吗?我就等着大家回答呢。你这个是不是这个数字。哎,你现在假如这个数字啊,Number假如说等于等于等等于十个呗,假如说number是等于十的,那么现在我们从二开始,是不是二到九二到九就是十。
16:06
就是这个I是不是二到九二到九对吧。对不对啊,然后你会拿着什么十对谁求余数?二对吗?好,大家看十对二,求余数是不是等于等于零成立了,十除以二是不是等于五能除尽对吧?所以我问你是马上就得出十根本就不是一个质数,你不是质数,我问你是不是应该if语句一旦成立,应该是成一个false。False表示非质数啊。是不是表示非质数啊?对吧,那如果number现在你想想是七。那I是几啊,I是二到几啊,二到六吧。是不是,那如果是奇异单,注意听,集中精力听啊,别烦,你现在可能有些东西听不懂了,但是你要。
17:06
坚持下去,去听各位啊,去听啊,这个东西不是一般人能写出来的啊,你现你现在写不出来的很正常,但是这个东西我该说可能还是得说一下,因为你毕竟得培养这个思路,毕竟得培养思路,你得看我怎么写,你得去模仿,去仿明白吧,你将来你得去仿啊,你得不断的仿,不断的仿,你才有这种思路啊,你永远不去访,那就有问题啊。是不是就有问题啊,所以你看public static返回布尔类型,说第一个为啥返回布尔类型,因为我觉得返回布尔类型好,为啥好啊,因为你的你的这个方法的任务是用来判断这个数字它是一个质数还是非质数,对吧,你是质数还是不是质数,你就两个结果处和false是不是最好,所以反回不类型这个方法名你愿意你你你看不懂这个方法名,你就你就写成汉语拼音对吧,你说是否啊啊。质数之类的对吧,那我就意思质数就完事了,你传过来这个数字,我要判断就是这个数字,这个数字是100,是1000,是1万,我不知道它是多少,我总之这个方法的目的是要判断我这个数字它是否是一个质数嘛,对不对,是否是个质数嘛,对不对,哎,那这个时候呢,我在这个位置上怎么办啊。
18:16
哎,我就传过来之后呢,我对它进行循环,对谁啊,对这个number对数字进行循环呀,你循环那个I是二二到几,如果你number我说等于七,那你I肯定是二到六。你H2到六,你就7777干啥呀?七对二求余数呗,对吧,你拿着七在对几啊,对我们的叫三求余数呗,你再拿着七对谁啊,我们的一个呃叫做四求余数呗,七再拿着往下对我们的五求余数呗,对吧?你七再往下对我们的六求余数呗,你发现求完余数都不等于零,也就是说这个条件都不成立,这个条件都不成立,就这个条件都不成立,那你如果都不成立,那这个是不是永远都执行不了,那如果你for循环结束了,哎,这个条件仍然没有成立过的话,那么在执行这个是不是就是。
19:09
表示的话是不是就是质数啊。对吧,你程序能到这儿,就程序能够执行到此处,说明是不是这个没执行。你好好想想,如果程序能跑到这儿,是不是说明这个没执行。你这个没执行,说明是不是质数。是指数。对吧,如果你这行代码执行了这个方法就就结束了,大家还记不记得,注意turn语句,一旦执行这个方法结束。对吧?如果说这个条件曾经成立过,妥了,那么这个return false就是非指数了。对吧,如果程序都执行结束了,再往下执行到这的return true。对吧,哎,那就表示什么呀,质数啊。程序能够执行到此处说明,说明这个number已经是质数了。
20:00
那这个就是这个意思。这就是这个意思,来各位有同学老师你写的代码到底对不对,对不对,你可以测呀,各位我问你,你写了一个方法能测不能。能不能测来system.out.print打印输出,我问大家,我们在这里能不能去调这个方法?能不能去调这个方法。一指数。我传个七进去行吗?是不是会返回一个不玩类型。是不是会返回一个布尔类型。好,这个布尔类型能不能在这儿输出一下。可以吧?Java c编译Java运行HOMEWORK2。
21:00
这个结果是各位啊,这说明什么?七是不是质数,但如果是八呢,来。False,如果是八是不是就是false啊?如果是九是不是还是false?九能被三整除吗?Java c变加va一行你看。False吧,如果是11呢?来你看Java c编译加异行,你看11是不是质数啊除。对不对,那13呢,它是质数啊Java c变异加一行,你看也是质数,但是如果14呢,对不起,可以被二,可以被七整除加va c变异加一,你看就false不是质数,对吧?所以我这个方法挺好用的,我这个方法写完之后是挺好用的,我单独抽起来这个方法就是用来判断什么呢?哎,我这个数是否是一个质数,而这个结果有可能是处,也有可能是S。有可能是除以,有可能是false,如果是true就表示是质数对吧?哎,你如果为true那就质数对吧?哎,如果false就是非质数呗。
22:02
对不对,哎,那走编译运行,你看非指数对吧,13。嗯,编译运行,你看是不是指数啊,是指数。对不对?哎,那你说11是不是质数啊,没问题,是质数编译运行走你看质数吧,对不对?七是不是质数啊,来走编译运行是质数对吧?六是不是质数啊,不是质数来编译运行非质数是不是?六可以被三被二整除吗?是不是?所以我这个方法现在写出来,这就很独立,我这个方法就是用来判断它是否是个质数。啊,就是这是一个,对对这个单独的方法测试啊,对一个单独的方法进行测试啊进行测试。你看。就这样。啊,这次测完了,那上面那个代码就可以放开了,对吧?哎,大家看看现在这个题目啊,是什么呢?是他说呀,编写一个方法,输出什么大于某个正整数N的最小的质数,好各位大家看啊,假设N等于五,然后Y要出循环N加加加加之后是不是五会变成六,那我们接下来判断什么呀,如果什么六是质数。
23:16
是不是就输出就结束了。那这个六是不是质数,你能不能调这个方法去决定啊,所以在这个地方我们是不是可以考虑调一下下边的这个方法,大家看叫做is质数。Is质数这个方法我问你能不能把上面的N传进来,是不是有一个布尔类型,是不是有一个变量flag,如果flag妥了,那是不是就输出啊,那这个代码是不是就写成这种德行了?好,你看N是不是等于五,我要出情况,N加加吧,五是不是加一变成六六是不是传进来,这个六是不是传进来,如果是六传进来,如果返回处,如果这个是处,这个是处,明白这个是true,表示是不是质数。
24:02
是质数,是质数输出不输出,结束不结束吧?哎,如果是false呢,False的话这个就不执行,这个不执行的话是不是Y要处会继续往下循环,再N加加,N加加之后是不是又加一变成七七传过来之后判断是不是质数啊,哎,是质数,所以这个是不是出啊,如果是处的话,这个是不是输出啊,这个是不是结束了,哎,所以这块是不是有个flag呀。是不是有参数啊,有参数传过来就完事了。你写不出来,还是那句话啊,写不出来那行了,各位这个能不能,能不能再提取成一个方法,这个方法是专门来打印,打印最小质数的。你可以再提供一个方法,Public static,因为人家让提供一个方法嘛,输出嘛,你现在总部都在门上里写着对不对?Static void叫print什么呀,Print mean叫做最小,最小质数,好,别嫌名字长啊。打印最小质数这个方法就是用来这个方法,这方法就是用来打印最小质数的,咱们的课程还是得有深度啊,咱不能只讲点皮毛啊,你你还是有点深度,那打印这个最小,那我问你,你是不是应该给一个给一个数,人家说输出大于某个正整数N的最小的质数。
25:21
那你现在这个参数,大家想想是不是在这应该有一个有一个N有一个N,你要大于这个N的最小质数吗。是吧,你得传过来这个参数,所以接下来你是不是就可以把上面的代码复制一下。对吧,把这个复制一下拿过来原封不动放哪儿啊,放这儿呗,放这儿的话,这个N就不需要了,N等于五的,不一定等于五了,你N是传过来参数,所以这行代码就删掉就行了,然后接下来我们这个是不是也删掉就完事了。是不是啊,当然这个代码还可以再简化啊,还可以再简化,能简化没有任何问题啊,只不过现在我不敢简化了,我再往下简化你就听不懂了。就总之这个代码是拿过来的,大家看打印最小质数,你传过来一个N,假如说是五,那么Y要处循环,这是不是五加,加变成六,那判断是不是质数,你看在这个方法里面是不是掉了这个方法,这个方法是不是就是这个方法。
26:12
对吧,哎,把N。听不懂了吧。能听懂吗?我的天呐。估计够呛了,我现在我现在心里没底了,我现在讲到这我心里都没底了。估计够呛了啊,估计够呛能听懂了啊,这会儿。应该是听不懂了,应该是听不懂了啊,打印最小质数传过来一个NN这块呢,是Y出循环,N加加变成什么呀?哎,五五加加变成六嘛,是吧,六传过来判断一下,单独一个方法对吧?这个方法去执行,执行完这个方法之后返回是不是质数,如果是质数怎么着啊,哎,在这输出。你咱们班如果有,如果有高手的话,我告诉你这两面都可以再封装,再封装。啊,这个代码可以再分装,这个代码不是最简单的,还可以再变再变啊再变,你最起码这个变量没没用,你可以把这个东西直接叭塞到这儿。
27:03
对吧,另外这个Y处死循环你也不能这么写,这么写的太太low了,这个代码太low了啊,这个代码您都能更新,都能再改,但我在这里我就不再改啊,不再给大家看这个逻辑啊,传过来这个N是不是Y处死循环,N加加是不是N加加加一了,那五五加一是不是变成六啊,六我问你是不是质数啊,不是质数不是质数,六不是质数啊,所以这个条件不成立,不成立的话,这个就不执行,是不是进进入下次循环六加加是不是变成777过来的时候,七是不是一个质数啊,七是不是一个质数啊是吧,这是不是就是处啊,哎,如果如果为出,如果如果是质数怎么办?输出吧,输出是不是break,这个这个这个循环就结束了。对吧,哎,这个程序就变成这样的,所以接下来你要调在main方法里边干啥呀?哎,这个代码你就可以注释掉了。你就可以注释掉了,注释掉了啊,注释掉之后呢,接下来你这main方法里边一行代码也没有,你最后你可以在这怎么着调下边这个方法,调这个print最小质数,打印最小质数对吧?打印最小值数,然后括弧括起来,哎五你打印五的最小值数,你把五传进去五。
28:04
五的最小质数是谁啊?是七吧,大于五的最小质数啊,是不是七啊,所以你看变异加了C,变异加运行七。对吧,哎,你如果是写个十呢,对吧,你要打印这个十它的最小质数,那这个十是不是就传过来,这是不是就是十啊。对吧,这个十就是十加加变成11嘛,十一十一是不是质数啊,是质数,如果为处的话,是不是就输出11啊好,大家看加va c呢,去编译加运行,你看是不是11啊,对吧?那如果说我现在写的是12呢,如果是12,那么大于12的最小的这个质数是不是13,所以你看编译去运行对吧?哎,是不是就是13呀,那大于100的质数是什么呀?哎,你看你又去调一下这个方法,大于100的对吧?你大于这个100的啊来我们看最小质数加va c去编译加运行,你看100是101。101。对吧,啊101,那那这个程序就完美的就就结束了啊就结束了。
29:03
那这个这个题目比较难一些啊,比较难一些啊,我写的我是我是写的不是俩,不是一个方法,你看我写的是俩方法,两个两个方法,两个方法,各位啊,咱们班的同学可能在写的时候啊,昨天在做这个作业的时候,可能写了一个方法。可能写的是一个方法啊,我在这里呢,我提取出两个方法,因为这个方法以后还有还有还有可能会用,你要在别的地方用的话,判断某一个数是否是质数的话,你还可以直接去调这个方法,那这样的话就可以达到最小体积的分离啊,最小功能的分割,然后代码才可以得到什么呀,重复使用啊重复使用,但是你这种意识呢,可能目前你是没有的。你目前是没有这个意识的,各位啊,你这个代码写不出来的,我写出来,你写不出来,这很正常啊,很正常很正常,但是哎似乎在这儿呢,哎你是否似乎啊能不能听懂,然后下去之后你看到这个题目,我觉得你你再去。理解一下这个程序,再去理解一下这个程序。
30:01
啊,这个程序是怎么回事,怎么一步步出来这么多的,我说一下啊,你抄代码没用。你抄吧,来吧,叭叭叭一行抄,你从这抄的时候,这个方法定义了吗。没定义对吧。哎,所以说你抄这个代码呢,你看你怎么怎么去写这个代码,你看我这个思路是什么思路。对吧,哎,我解一个东西有没有什么办法,有没有第一步先干啥?你看我先写这些东西,我写着写着,突然写到这之后,诶有一个什么,有个判断,对吧,有个判断,诶这个判断我就想,哎,这个东西也可以提成一个单独的方法,于是乎呢,我在这就写了一个单的方法,那写完单独方法之后呢,哎,我再基于这个方法继续往下写代码,然后我再把这个代码抠出来之后呢,放到一个方法里边,你看我这是一步步怎么走的,就是说这个解题的一个思路,这这个很重要。你明白吧,就不要去抄代码,我觉得你要去抄代码,那这个肯定不行。啊。老师写的代码和入站是一样的,那那当然的,那当然我这个思路就是入站的思路。你入站的思路就是你执行的思路。啊,你入站的思,就是你执行的思,你只有这样做这个程序才能写出来,能写出来,但是这个不是一天两天的事儿,各位啊,这个难度超级大的啊,你可能说在动力机点能待了,就是将近这个一个月了,过了将近将近这个一个多月对吧,40天诶你可能才能达到这个级别,就是说哦,就这块儿我有点意识了啊,什么意识啊,这个方法提取的意识我可能有了。
31:21
啊,有了有了点这个意识啊,但是这个题目呢,哎,咱们就就就说到这儿吧,啊说到这儿,然后还有。一个提示这个内存图啊,这个内存图的话,我觉得还是谨慎点吧,我一会儿再画一下这个内存图,大家先休息15分钟啊。
我来说两句