想要实现如图所示的九九乘法表,首先可以来观察一下其的特征。在此处涉及到多行多列,所以选择使用嵌套循环。一般外层控制行,内层控制列。
第一步先来观察行。
九九乘法表中一共输出9行,初始值从1开始,每个数之间相差1,那么在循环中就将循环变量初始化设为1,循环条件要控制在10以内(不包含10),循环变量的改变为每次增1。所以外层循环应该为:
for(int i=1;i<10;i++){
}
第二步来观察列。(用第四行来举例说明)
可以发现第四行每列的第一个数和列数对应,所以应该与控制列数的变量相同;而第二个数与行数相同,所以应该与控制行数的变量对应,即上文中的i。最后的结果就是控制列数的变量和控制行数的变量的乘积。
由于内层循环是控制列数的。
观察第四行可以发现,列数是从1开始,到4结束,即到行数(第四行)结束;
观察第五行可以发现,列数是从1开始,到5结束,即到行数(第五行)结束
所以在循环中就将循环变量初始化设为1,循环条件控制着与当时行数相同(即控制行数的变量i相同),循环变量的改变为每次增1。所以内层循环应该为:
for(int j=1;j<=i;j++){
System.out.println(j+"*"+i+"="+i*j);
}
整体代码:
for (int i = 1; i < 10; i++) {
for (int j = 1; j <= i; j++) {
System.out.println(j+"*"+i+"="+j*i);
}
}
此时输出结果为:
此时很难看出整体是否输出正确,因此我们进行调整,让每输完一行就换一行,即在外层循环(外层循环控制行数)中一层循环结束时换行,如图:
结果:
此时看起来不够美观,所以在每列输完时,增加一些空格
for (int i = 1; i < 10; i++) {
for (int j = 1; j <= i; j++) {
System.out.print(j+"*"+i+"="+j*i+" ");
}
System.out.println();
}
结果:
注意到一旦结果为两位数时,就会没那么整齐。因此我们再进行更正:
结果:
\t 水平制表位,固定占8位。一般用于对齐。
浅显结论,欢迎讨论!