00:00
其实我再给大家说一下啊,这个窍门是啥?这个窍门我之前我讲过,这个窍门就只有一点,就是你在分析外边放的时候,把里边这个看成普通代码就行。你就看成你就注释掉呗,你为啥非得签到融合在一起分析啊,你注释掉你里边有个放放的话,那就是前面代码也没有对吧,后边啥代码也没有,一个方循环find放在你面前,你就把这个for对吧?哎,好好的研究明白就行了啊。来这个同学说什么说老师输出一下K。呃,输出一下KK的值是一呀。K的值是一啊。这个没毛病啊。K的value啊。K,这不等于零吗,对吧?哎,然后呢,K呢,零等于零小于二,所以输出K是零啊,然后K加加之后K变成一啊一小于二对不对?哎,小杨来那这块呢,我们再来编译一下,再来运行一下。
01:01
啊,这个K你看等于零,你看再往下是不是等于一呀。第一次内循环结束之后,内存会释放第二次,相当于又重新。加载一次内循环,对对对对,继续会用一等于零去进行内循环,对对对对对。对外面的放循环变量,外面的for循环的变量循环了。几次里面的for就会重复,哎,对对对对对,理解的对啊,到位里面循环,里面循环K啊,里面循环啊。那你这个K如果在这儿呢,是输出零,然后在这儿呢,又输出什么呀,又输出这个叫做这个一对吧,哎,刚才测试过了,那如果是这的话,那无非就是说你把K的值放到这个里边。就相当于是说呀,你循环。几次啊,零到90次对不对,那你十次这个K值是一样的呗。K值是一样的,那这样的话就只能输出什么呀?输出一个K等于零对吧?K等于一能能输出吗?如果K等于。
02:08
哎,K等于零能输出,K等于一能输出吗?各位告诉我这个地方输出啥,猜测一下,咱们运行之前先猜测一下这个K输出啥。K等于零小于二。然后for循环。对吧,哎。循环过程当中,这个循环其实和K没有关系。对不对。嗯。然后十个零。这是循环14嘛,所以这个K是输出十个零嘛。然后紧接着怎么着啊,你别忘了,这I也会变啊,I就会变成十,然后K加加吧,K加加之后变成一一小于二,是不是仍然会执行这个方循环,但是在执行这个for循环的时候,I的值刚才已经变成多少了?I的值刚才已经变多少了?已经变成十了,对不对,所以这个条件是不是上来就失败了,所以这个里边就不会执行了,对不对,所以是不是十个零啊。
03:05
没有十个一啊,远亭这块你观察的少啊,为啥呢?因为这个I的生命啊,是在这儿的。啊,爱的生命在这儿的话,会导致这个里里边放循环,第二次的时候它就不执行了呀。对不对,哎,所以K等于零啊,K等于010个零啊加va c边加运行好大,看一个零两个零对吧,三个零四个零五个零六七八九十个零嘛,是不是哎十个零,但如果说你这个程序你说你要这么改。那就又不一样了啊,反正你想你想改你的程序对吧,哎,咱们就一顿改改哪啊,你如果把这个代码给它放到这个里边。I等于零,那么这个时候呢,你就会发现这个程序又变了,对不对,因为你这个I等于零从零开始了嘛,所以这里边的每一次都会循环十次的啊,都会循环十次的。啊,所以这块呢,K等于零,K等于一呢,都会输出啊。
04:04
K等于零,K等于一呢,都会输出,然后输出这个之后呢,输出I对吧,懵了。嗯,这个蒙了了。就这个,为什么会懵呢?把它放到外边跟放到里边的区别,我再说一下,咱们说慢点啊,变量放到外边是什么意思。放在外边是什么意思?我说慢点啊,咱们一点点捋呗。稍微慢一点是吧,好,K等于零。K小于二能看懂不,零是不是小于二,条件是不是处是处,这个代码会不会执行,这个大框里的代码会不会执行。会吧,这个大括号里边代码,我问大家执行的时候这个负号循环。
05:00
是不是I的值是等于零的小于十成立吧?然后这是不是会输出KK刚才等于多少。零是不是,所以这是不是输出零。这输出一个零,然后紧接着这会输出几。零啊。对不对。哎,然后紧接着你跟外边for就没关系了,因为我这个for还没有结束吗?我的A加加会继续往下执行,I加加往下执行,I的值从零变成了一一小于十,所以这里是不是还是输出零。因为K值没变呀。所以这里还是输出零啊,但是你这个I的值是不是一啊。那你接下来这个I加加是不是变成了二二是不是还是小于十再输出,那你这段代码执行是不是还是零啊,那么紧接着这块这个I加加之后变成二,所以这输出二啊。紧接着这是不是还是输出零,你一直输出零啊,这个K没变呀。
06:01
对不对,你K是没有变的,当你这个循环结束之后,我问大家I的值已经变成多少了,这个是一直往后是零。对吧,那这个呢,它最后是不是输出是九啊,九之后九加加是不是变成了十啊,十小于十是不是啊。如果你这个是false,这个循环是不是就结束了呀,你这个代码结束了,我问你这个K加加是不是才会执行啊。你里边这个代码结束了,你这个K加加才会执行啊。你这个代码结束了呀,才会执行K加加呀,你原先K是零啊,K加是一对不对。K的值是不是零,K加是不是变成一一是不是小于二啊,一小于二是不是条件成立,成立之后你是不是还会再进来里边执行这个大框里边代码呀,但是我问你,当时第一次你放循环的时候,你这个I的值是不是已经变成了十啊。
07:00
你的I在外边声明的呀,所以第二次在执行这个里边的代码,代码的时候,I小于十上来是不是一上来就是false啊,所以代号里面代码是不是不会执行啊。对不对,是不会执行的呀,就直接就结束了呀。结束了呀,对不对,但如果说你这个I变量的声明,你没有在这个位置上,说明你是放到这个位置上的。你是放到这个位置上的,那么接下来我们再来捋一下啊,再重新捋一下,各位重新捋一下啊来K等于零没问题吧,K小于二是不是处啊。条件为真,K现在等于几等于零啊,所以我问你这个条件为真的话,这个大块里面是不是就会执行啊,所以你就把这个忘掉就行了,你忘掉这个呀,你忘掉这个的话,你K现在是零啊,所以你负二循环执行的时候,你是不是从零到九执行循环十次,你的K值是不是一直是输出十个零,但是你I的值是不是从零会输出到九。
08:00
对不对,哎,没有任何问题吧,好,那你这个代码执行结束之后,我问你是不是才能轮到这个K加加好各位。轮到K加,加之后,K的值原先等于零,K加变成一一小于二,是不是为处,如果为true的话,是不是又开始执行这个里边的代码?对吧,所以K现在是一啊,这个注释掉好,这个注释掉好各位,那现在我是不是执行这个代码,这个代码是不是又从零开始的呀,因为I等于零零开始零小于十,所以又是输出零到九,但你这个K的值,由于刚才的K加加在执行这个里边代码,所以K的值是一嘛,是十的一对不对。是十个10个一啊,就这个意思,所以说这块代码的分析,我建议各位啊,怎么分析,就是你分析外边这个for循环的时候,你一定要把这个代码给它注释掉,如果你在分析的循环是里边这个循环的话,我建议你把外边的for给它注释掉,你就当是不存在的,你不要把这个for和for联合在一起去,一块掺和着去分析,你永远都分析不明白,一会儿你就完蛋了。
09:12
啊,一会儿你就完蛋了,所以说这个K的值是十个十个一,然后这个是两套的零到九,这个是两套的零到九啊,所以我们这个程序再来编译一下Java c呢,去编译一下我们Java去运行来看一看。K的值是不是从零啊好,这一堆是不是Y6,嗯,K的值是零对吧,但Y6呢,这块是0123456789对不对,哎,然后整个这一堆,你有没有发现K的值永远都是00000000对吧,从这一套这开始,自此之后这个K的值就变了,K的是111,你看这个K1。一一对不对,哎,所以说这一块呢,大家呢,哎,看看怎么去理解这个方循环啊,看怎么去理解,你跟变量的生明位置其实关系不大,你只要是说你现在把这个东西啊,给他一层分析啊,我觉得这个就能懂啊,就能理解好理解啊,那咱们再休息十分钟吧,各位休息十分钟啊。
我来说两句