00:00
好了同学们啊,那咱们这样讲这个关键的时候呢,我再稍微这个慢一点啊,我我来说一说这个for循环啊,这个叫做九九乘法表,它的一个原理好吧。来点右键呢,我们新建一个文件啊,这个文件呢,我们就叫做for。T06。我们来看一看这个九九乘法表啊。九九乘法表,我觉得现在大家呢。先能看懂,你要自己说,现在徒手把九九乘法表写出来,我觉得这个够。你估计写不出来,咱们班应该是没几个能写出来的,就你什么资料也不参考,自己能把这个乘法表写出来,我觉得这个也不太现实啊。呃,这块呢,咱们这个。
01:01
听吧啊,把九九乘法表听啊,听完之后呢,根据我这个思路,然后你再干什么呢?哎,再去写自己的这个九九乘法表,好吧,来九九乘法表啊,咱们首先第一个我们大家应该干应该干啥呀。九九乘法表。第一件事,先干啥?你得先知道九九乘法表,它是个什么样的表,对吧。一一得一没错吧。第二行。是一二。得二是吧。二二。得四是不是。哎。然后是第三行是。一三。得三呗。二三。600。三三。
02:00
喝酒了。是不是,哎,第四行一四得四呗。有规律啊,有规律,你好好看看规律啊,然后二四得八呗。啊,然后三四。12呗,是不是哎四四。16班。啊,16。然后呢,这个规律一直往下走,一直。往下走。然后到这儿呢,12345678919。喝酒吧。二九。18吧。哎,然后到最后。九九。81吧。好了各位,这个呢,其实就是九九乘法表。你有没有发现它有个特点,就是一共就是这样吧各位。
03:02
请找一下。以上九九乘法表的,九九乘法表的。特点。把这个特点给它找出来。有哪些特点呀?首先知道供什么呀?第一个特点。供什么就行,没错吧?是不是,哎第二个特点。是什么呀?一共九行。第二个特点是啥?第一行有一个对吗。第二行是不?第三行是不是三个。第四行是不是就四个呀。第九行是不是九个。哎,第二个特点是这个最难找啊,第一个特点都会。共九行,谁不知道啊,对不对啊,但是第一行。
04:04
第一行。一个。第二行。两个。第N行N个。这个特点你要能找出来,我觉得这个你你就能写出来。啊,就能写出来。第一个特点就是共九行呗,九行它循环九次呗,对吧,哎,九行循环九次呗。是不是,哎说。I从几开始啊?明显是从一开始啊,你看1234到九呗。对吧,1234789,那就是I等于从一开始呗,I干啥呀,小于等于多少啊九呗。I干啥呀?加加呗,那你先看一看这是不是九行的I,现在是不是九行的行号I等于多少啊。来。Java c编译for test06.java。
05:03
Java four test,零六。1234567899行啊。是不是这个I现在是什么,I是。行号。啊。倒什么呀,九。那大家是否还记得?记得什么呢?就说我一行上是不是有多个表达式?对吧,我一行上是有多个表示,所以我这个里边是不是应该写一个循环,外边这个循环是不是一个纵向的循环。纵向循环。对吧,那里边儿这个循环是不是应该是横向循环啊。里边是不是应该再写一个循环for,而这个for是不是应该是负责输出一行的?
06:00
你好好想想,外边这个只要往下跳一个,就相当于是换了一个新的行。你从第一行跳到第二行。你这个外边的for。就得循环一次。但是你从这一行。跳到这一行的时候,你上面这一行你必须得给它输出完。所以里边的这个方循环应该是负责你本行的。就是你这个啊内部。好循环。负责将一行上的。全部输出。当你这个放循环执行结束之后。一行就结束了,然后A加加之后,哎。I小于等于九的话,会直接再执行这个循环体里边的代码。
07:01
那么外层我们叫做纵向循环九次。里边这个到底循环几次呢,就不知道了。那循环几次和行号有没有关系?这个循环这里边儿这个循环是不是只是负责把我们这一行上的给他输出啊。那么里边的这个循环到底是循环一次,循环两次,循环三次,还是循环四次,还是循环九次,那要看你的行号是几对吧?是不是,哎,你行号是一,就是循环一次,行号是四,就是循环四次,行号如果是九的话,就循环九次,所以说你这块应该是TG等于也是你看一。234对吧,也是从一开始这呢,小于等于什么呀行号。
08:02
然后怎么着呢,这干什么呀,哎,加加。大家想,这个程序其实已经写完了。这个已经写完了,那这个行号是谁呢?来各位告诉我,来给我交互一下,在这个保利威视上跟我聊一聊啊,这个行号是是谁。这个行号是谁?好好是不是爱?对,咱们同学们说的对啊,行号是I,所以直接在这写一个I就行了。啊,咱们来分析一下,你外边这个循环I啊,最初的时候等于一小于九吧,就执行这个了吧,那这个时候执行这个的时候,I等于几呀一,所以这个是不是就是一直是一呀。那这等于小于等于一,是不是就循环一次啊,循环一次是不是正好把这一个就输出了。
09:02
那么当你这个for循环把第一行输出之后,会进入下一次A加加。I加加之后呢,I是变成了二,二仍然小于九,所以接下来再执行这个的时候,I一直就是等于几啊二的。那等于2J等于1J小于等于二是不是相当于是循环两次就把第二行是不是就输出了。对吧,所以这个位置不能写死,不能写死啊,你只要把I拿过来就行了。你只要把I拿过来,就I是行号啊,I是行号啊,好了,那system点点print打印输出什么呢?I。乘以对。I乘以ji是行号。啊,是行号啊。或者是J乘以I都行。
10:03
中间那个可以不写吗?你指的中间是哪个?你指的中间是哪个灯圈?中间那个可以不写吗?是啥意思?你指的中间是哪个,哪个是中间。这小于。等于是吗?这个不写。你这个不写里边这个循环就死循环了吧。你就一直输输出啊,你你这个你这个循环一直是死循环了。那你你这块你还怎么执行啊,你没戏了呀,你这个就执行不了了。这个得写啊,这个不写肯定不行。那I乘以J就行了。好了,各位各位这个地方加不加换行。这个位置如果加换行的话,就会导致什么。
11:05
就导致不是这个格式对吧。什么时候才会换行,各位你看输出一个又输出一个,又输出一个,又输出一个,哎,才换行。是不是应该换行放到for循环的外面,在这个位置是不是换行?这个位置是不是不应该换行。对吧,那如果你这个位置换个行,你看它应该是所有的结果都会怎么着啊,哎,换行来编译一下运行。那。对吧,一一得112得二二得四,一三得三,二三得六,三三得九,一四得424得八,三,42,四四十六。一五得525 13 55,四五,25,五二十五。对吧,哎,都换行,应该是这个是一行这个应该是一行,这个应该是一行这个。应该是一行。
12:01
所以说你这个换行不能在这个位置换行,你应该是说你这个for循环结束了,我问你是不是我刚才说了,里边这个代码结束是不是就代表一行结束了,那你一行结束是不是应该在这个位置上换行啊,所以换行的地方你要注意。啊,你要注意。来,那这样的话,我们再去编译这个程序,再去运行,我们就会看到结果,你看一一得一对吧,一二得二,二得四,一三得三,二三得六,三四得九。对吧?哎是这样的,那你这一块呢,你可以让它中间加一个空格,是不是怎么加空格,你可以加上一个空格呀,是不是,那这样的话它就空开了呀,再编译再运行,大家看现在是不是九九乘法表的结果。现在是九九乘法表的结果,我们要的可能不止是结果,我们还要什么呀,还要前边的这个东西。那你要前面这个东西,怎么能有前面的东西呢,哎。你看这是那个结果吧,这是那个结果。
13:01
对吧,哎,结果就到这为止,我觉得应该没问题吧。For循环外边是九纵向循环九次,这个外边每循环一次,里边这个就得输出一行。外边只要循环一次,里边这个就得输出一行,外边循环一次,里边这个就得输出一行。那你这个里边这个循环输出到底是输出多少个,那要看你的行号是几行号是四就输出四个,行号是九的话就输出九个,所以这个位置循环次数不一定这个位置是个变量。这个位置是个变量,不是个死的。不是个固定的啊,它这个值是行号,你行号是多少,那我这个for循环就循环几次啊,等我循环完之后一行结束换行,就这意思啊,然后呢,哎,大家看这个值啊,已经输出了,前面有个等号,你可以把等号在这写一下。这不等号吗?加上去呗。对吧,好,那这样的话,这个等号是不是就有了,等号就有了来拼吗?加上C变E加,你看这不等号有了吗。
14:00
等号有了之后,那前面还有这么一个东西呢。前面还有这么一个东西呢,对吧,还有一个。这样的东西存在呢?对不对,哎,一一得一你看走,你看Java c边一加一行好。Java运行好,大家看是不是现在这个效果就出来了,但是你前面等号前面这堆是写死的,你现在是等于这块是写死的,那你能不能不写死呢,对不对,哎,你做字符串拼接不就行了吗?这个你就可以把它看成是什么呀,是呗。是不是,哎哎。对吧,你乘以后边这个,你就把它看成是什么呀,是这位。对吧,你I呢,哎,租车拼接啊。乘以J对吧,等于后边这个值,所以接下来加va c,再编译Java,再运行,大家看现在是不是就是九九乘法表啊。啊,如果跟你那个不符合的话,你可以怎么着啊,把这个换个位置啊,这放到前边A呢,给它放到什么呀,后边也行啊对不对,哎,所以说加va c去编译,加完再去运行,大家看一得一,二得二,二得四,一三得三,二三得六,三得九对不对,14243444是不是,哎一九到九九,所以这个呢,其实就是我们讲的这个九九乘法表,各位啊,九九乘法表,那这个九九乘法表,其实你要是捋清楚思路,我觉得呀,最重要的啊,最重要的是。
15:26
不要慌。慢慢的把思路。捋出来。啊,在写代码。这个东西呢,我觉得。大家呢,好好的分析一下它的特点,第一它是有九行。所以我们外层是九次循环,但你每一行上也需要循环输出。那你这个里边的循环到底循环几次,那要看你它的特点是啥,你看第一行就是一个,第二行就是两个,第三行就是三个,第四行就是四个,第九行就是九个,那就是你这一行输出多少个呢?那肯定跟你的行号是有关系了,所以我问大家,如果你当初把这两个特点能分析出来的话,其实你写起来不麻烦。
16:17
最怕的是什么?知道吗?同学们最怕的是刚开始这俩特点没找到。就是最怕的是这个你特点没找到,你程序就不用了,你写不出来啊,你特点没找到,它的特点没找着。对吧,或者是有一些同学找到了第一个特点,就只知道是九行,第二个特点没找出来,什么意思,第一行有一个,第二行有两个,第三行有三个,第四行有四个,第九行有九个,这个特点没出来,如果说你这些特点能找出来,我觉得写这个程序问题不大。所以我觉得这个东西啊,不是大家编码能力的一个问题啊,是你在思考这个问题的时候,你有没有找出它的特点,你要实现这个功能,对吧,你要根据这个特点来写你的代码。那不是还能做二的次幂,当可以。
17:03
没问题啊,咱们现在先不说练习题的事儿啊,总之呢,这个呢是九九乘法表这个东西啊,咱们就说到这儿,各位啊,就说到这儿。那么到此为止吧,那这样的话,咱们这个for循环这块,我们就基础语法我们就讲这么多啊,在这个过程当中呢,单独的这个for啊。我们要会写for循环里边嵌套一个for循环呢,大家也要写,也要会写啊,因为for循环嵌套一个for循环,这个在实际开发中还是比较常见的。啊,但我之前的开发遇到最多的就是for里边嵌套了一个for for里边又嵌套了一个for,这是顶级了,各位啊,这是顶级,最多也就这样了。啊。这一块呢,怎么说呢,大家注意啊,这个for循环啊。没有说四次五次六次嵌套的,如果你套的次数太多的话,你就会发现你的程序的执行效率不行。
18:01
对,效率是有关系的,所以这个能咱们不嵌套,尽量咱们写这个程序就不套。啊,因为嵌套的话,它的这个循环次数,就像刚才大家所说的,如果你外边呢,循环几次啊,循环这个九次对吧,里边有循环的次数,那一相乘一乘积就会发现什么呀,乘倍成倍的往上翻对不对,外边循环两次,里边循环十次,那就是二乘以十,就是20次啊对吧?那你想想这个循环20次,那如果里边再加一个呢,那又是再乘以一下对不对?哎,所以说这个东西呢,循环次数太多的话,就会影响程序的效率。啊,另外大家以后写程序注意点啊,如果你写EEE写写一个四四层循环或者五次循环,我告诉你啊,你的程序肯定可以改良。我都有这种感觉啊,你那时候你肯定是可以改良的。对,你再改良改良,你就发现其实用不了那么多的嵌套啊,用不了那么多嵌套。你不要以为以为你写了四次,写了五次,写了五套五套这个五次这个呃嵌套对吧,你就感觉很有成就感,嗯,你这个好像有。
19:01
有点问题啊,跑歪了,有可能跑歪了。
我来说两句