看到源代码后虽然能写,但是确实按照一步步操作对照乘法表相符的方法理解的。但是为啥这样,确实似解非解,知道一个月后再次学习嵌套循环,才明白了内在的原理与逻辑。
代码如下:
for (int i = 1; i <=9; i++) {
for (int j = 1; j <=i; j++) {
System.out.print(j+"*"+i+"="+i*j+"\t");
}
System.out.println("");
第一步。找到确定变量。
外循环变量 i。
内循环变量 j。
第二步,确定内外循环管的对应位置。
确定哪个是外循环,哪个是内循环。莫搞混了。
我们明白嵌套循环,一个外循环,一个内循环。
外循环运行一次,内循环运行一遍多次。接着外循环运行第二次。
知道外循环运行一遍,内循环已经运行了j*k次。
这个时候我们可以发现,外循环运行一次,变量不变,但是内循环的变量却变化了。
这个时候我们看任一一行,比如第三行。3一直不变,123循环了一轮。所以,可以确定前面的变量为123所在的位置为内循环的变量,3个3所在的位置是外循环的变量。
这个时候我们就可以得到变量的基本表达式。
j+""+i+"="+ij
这个时候发现外循环控制换行。
于是加上System.out.println("");
第三步,明白两个循环各自次数,确定循环条件。
这个可以说是隐藏的难点。换行。
来确定循环条件。两个变量的取值范围都是1-9.于是设置都<=9.
运行结果为:
11=1 21=2 31=3 41=4 51=5 61=6 71=7 81=8 91=9
12=2 22=4 32=6 42=8 52=10 62=12 72=14 82=16 92=18
13=3 23=6 33=9 43=12 53=15 63=18 73=21 83=24 93=27
14=4 24=8 34=12 44=16 54=20 64=24 74=28 84=32 94=36
15=5 25=10 35=15 45=20 55=25 65=30 75=35 85=40 95=45
16=6 26=12 36=18 46=24 56=30 66=36 76=42 86=48 96=54
17=7 27=14 37=21 47=28 57=35 67=42 77=49 87=56 97=63
18=8 28=16 38=24 48=32 58=40 68=48 78=56 88=64 98=72
19=9 29=18 39=27 49=36 59=45 69=54 79=63 89=72 9*9=81
这个结果显然与乘法表不同。这个时候发现第一行外循环不变,但是内循环却多运行了。于是改变内需换的变量取值范围。
这时候再次发现第一行内循环运行了一次,
第二行,内循环运行了两次。
第三行,内循环运行了三次。这时候发现。可以用外循环的的变量作为内循环的取值范围限制。于是内循环的循环条件改为j <=i;
再次运行。得到的结果与乘法表一样。
优化一下在表达式后面加一个“\t”.价格空格更方便阅读。
按照这样的思路。
首先确定变量,第二步确定循环体,第三部确定循环条件。这里的二三步条换回来就是单层循环语句的执行过程。
可以说算是将嵌套循环简化为两个简单的单层循环来解决了,是不是有种解中学数学题的感觉。将难题分解为及格简单题。
11=1
12=2 22=4
13=3 23=6 33=9
14=4 24=8 34=12 44=16
15=5 25=10 35=15 45=20 55=25
16=6 26=12 36=18 46=24 56=30 66=36
17=7 27=14 37=21 47=28 57=35 67=42 77=49
18=8 28=16 38=24 48=32 58=40 68=48 78=56 88=64
19=9 29=18 39=27 49=36 59=45 69=54 79=63 89=72 9*9=81