一. 语句嵌套

在语句中加入一些其它语句,比如for语句中,加入了if语句。其实就是在原有语句的循环体基础上,对其进行扩展,添加了一些语句。

嵌套的形式有很多种,没有必要刻意地去记录,当需要使用的时候去用即可。这里将讨论一种特殊的嵌套形式。

在for语句的循环体,加入for语句,这样的结构称为for语句的嵌套结构。(加入其他的语句也称为嵌套结构么?这里应该是强调for语句的嵌套结构)这里有内外循环。

Java嵌套事务 java嵌套语句_for语句

循环嵌套例子的练习。值得注意的就是一个空白换行语句。

Java嵌套事务 java嵌套语句_for语句_02

Java嵌套事务 java嵌套语句_嵌套_03

for嵌套的思想:外面有很多行,每一行里面有很多变量。→多行多列

Java嵌套事务 java嵌套语句_for语句_04

注解:针对上图的习题,我原本想的是用for嵌套不靠谱,因为,虽然是多行,每行也有多个符号,而且符号一致,但毕竟每行*不一样。但对于这种规则的排列,背后一定能找到规律,需要对嵌套语句的书写做一定的改变。不能拘泥于一模一样的每行每列。

Java嵌套事务 java嵌套语句_嵌套_05

注解:上面是我给出的解题,我的思路就在于每一行的行数和该行的列数,的和是一个固定的值,都是6,当外循环不断增大时,用外循环的值,来控制内循环的循环次数,这个思想就是视频中的0~5,0~4,0~3....(要熟记正斜三角和反斜三角的语句书写。)

虽然我们解答了题目,但是我们研究一下视频中的解题思路,便于我们深入地理解for嵌套。

Java嵌套事务 java嵌套语句_嵌套_06

 

无论哪个思路,都是在矩形的基础上进行修改,得到正斜或者反斜的布局。

思路1:原有程序输出的是一个固定行数和列数的*图案,但是在本题中,每一行的列数在不断减少,这就意味着我们要改变内循环。做出什么样的改变?每一次输出都是一个*号(例题本质上是相同语句的重复输出),*号在减少,意味着我们要减少循环的次数。

Java嵌套事务 java嵌套语句_嵌套_07

其实,五行和五列是固定的,只是在输出的时候变化了,现在固定5,前面的数不断变大,自然结果在缩小。还有一种是改变尾,

Java嵌套事务 java嵌套语句_嵌套_08

这两种情况都能实现列的递减。

Java嵌套事务 java嵌套语句_嵌套_07

意味着y<=5的语句中,5是在变化的。要重新定义一个变量来控制尾数。

Java嵌套事务 java嵌套语句_嵌套_10

思路1中的x和z不是一致变化的, 除非改变x的变化规律,就可以使用x来代替z了。

思路2:采用1~5,2~5,3~5,改变的是前面的数。就用变量来操纵前面的数。由于z的变化和x一致,就直接可以用x来代替z。

Java嵌套事务 java嵌套语句_for语句_11

Java嵌套事务 java嵌套语句_嵌套_12

解析过程:for嵌套针对的是这种行,和列重复输出的题目。在本需求中,行数是固定不变的,那么控制行数的外循环次数就不变,循环次数的求解可以是1~5,++来求解,也可以是5~1,--来求解。但是有一点必须明确,外循环次数是固定的。需求中,每行中列的数目在变化,也就意味着控制内循环-循环次数的事物也是在变化着的(内循环次数代表着列数)。解题的核心在于,外循环次数不变,内循环次数在变。内循环步长的减少(步长的减少?),在书写时,分为两种,1~5尾数在变小,1~5前数在变大。专门定义一个变量来控制内循环的变量的变化,即z,同时也可以用外循环x的变化来替代z。

注意:在对视频的学习中,外循环(代表着行数)一定是从1~5么,内循环(代表着列数)一定是从5~1么,都不是,无论是从1~5,还是从5~1,抑或是1~4,1~3....这些都是表象,都是为了计数用的,本质是为了控制循环的次数。从1~5是控制次数,从5~1就不是了么?怎么可能,都一样的,只是个人习惯不一样,理解起来的程度不一样。

为了长期使用的方便,我们罗列一个固定的形式,外循环固定不变,for (int x=0; x<=4; x++),所有的变动都集中在内循环上,在利用外循环变量的基础上,有正斜和反斜两种情况。在正斜或反斜中,对于内循环变量循环次数的控制也有两种,前数变动和尾数变动。

外循环固定不变,for (int x=0; x<=4; x++)

内循环:a. 反斜: 尾数变动 for (int y=x; y<=4-x; y++)    哪个数在动,内循环中,就是哪个数在变,

          前数变动 for (int y=x; y<=4; y++)

    b. 正斜: 尾数变动 for (int y=0; y<=x; y++)

          前数变动 for ( int y=4-x;y<=4 ; y++) 

1.定义z,不牵涉x,且1~5前数在变的情况。

Java嵌套事务 java嵌套语句_嵌套_13

定义z,且前数在变,为了减少变量,可以利用外循环的变量来替代z。能够替代的原因在于都是自增的时刻和初始值可以保持一致。

Java嵌套事务 java嵌套语句_循环结构_14

2. 使用z变量,1~5尾数在变化。用x替代z的情况也列在下面。

Java嵌套事务 java嵌套语句_循环结构_15

Java嵌套事务 java嵌套语句_for语句_16

 总结:本节谈论的是for嵌套for语句的练习,在控制台上输出一个布局为矩形或者三角形。练习能够采用循环结构的for语句实现,本质在于练习是在重复进行相同的操作—输出。控制内外循环的两个变量都有两种变化形式,内循环可以是前数或者尾数在变,外循环可以是从小到大,或者从大到小在变。