java 打印9*9
两种方法:
1.两个for循环结束,难点是去掉重复的项。
这是我一开始的代码
for (int i = 1; i < 10; i++) {
for (int j = 1; j <= 9; j++) {
System.out.print(j+"*"+i+"="+(i*j) +"\t");
}
System.out.println();
}
1*1=1 2*1=2 3*1=3 4*1=4 5*1=5 6*1=6 7*1=7 8*1=8 9*1=9
1*2=2 2*2=4 3*2=6 4*2=8 5*2=10 6*2=12 7*2=14 8*2=16 9*2=18
1*3=3 2*3=6 3*3=9 4*3=12 5*3=15 6*3=18 7*3=21 8*3=24 9*3=27
1*4=4 2*4=8 3*4=12 4*4=16 5*4=20 6*4=24 7*4=28 8*4=32 9*4=36
1*5=5 2*5=10 3*5=15 4*5=20 5*5=25 6*5=30 7*5=35 8*5=40 9*5=45
1*6=6 2*6=12 3*6=18 4*6=24 5*6=30 6*6=36 7*6=42 8*6=48 9*6=54
1*7=7 2*7=14 3*7=21 4*7=28 5*7=35 6*7=42 7*7=49 8*7=56 9*7=63
1*8=8 2*8=16 3*8=24 4*8=32 5*8=40 6*8=48 7*8=56 8*8=64 9*8=72
1*9=9 2*9=18 3*9=27 4*9=36 5*9=45 6*9=54 7*9=63 8*9=72 9*9=81
解决方案在第二个for循环的判断语句增加一个动态的变化量j <= i;
// An highlighted block
var foo = 'bar';
for (int i = 1; i < 10; i++) {
for (int j = 1; j <= i; j++) {
System.out.print(j+"*"+i+"="+(i*j) +"\t");
}
System.out.println();
}
1*1=1
2*1=2 2*2=4
3*1=3 3*2=6 3*3=9
4*1=4 4*2=8 4*3=12 4*4=16
5*1=5 5*2=10 5*3=15 5*4=20 5*5=25
6*1=6 6*2=12 6*3=18 6*4=24 6*5=30 6*6=36
7*1=7 7*2=14 7*3=21 7*4=28 7*5=35 7*6=42 7*7=49
8*1=8 8*2=16 8*3=24 8*4=32 8*5=40 8*6=48 8*7=56 8*8=64
9*1=9 9*2=18 9*3=27 9*4=36 9*5=45 9*6=54 9*7=63 9*8=72 9*9=81
- 第二种 用两个do while 去实现,第一个do while 控制换行,第二个倒着输出乘法
int i=9;
//第一个do while 控制换行
do{
int j=9;
do{
System.out.print(i+"*"+j+"="+(i*j)+"\t");
j--;
}while(j>=i);//小于于i之后跳出循环
System.out.println();
i--;//每次自减小于1 跳出循环
}while(i>=1);
运行结果:
9*9=81
8*9=72 8*8=64
7*9=63 7*8=56 7*7=49
6*9=54 6*8=48 6*7=42 6*6=36
5*9=45 5*8=40 5*7=35 5*6=30 5*5=25
4*9=36 4*8=32 4*7=28 4*6=24 4*5=20 4*4=16
3*9=27 3*8=24 3*7=21 3*6=18 3*5=15 3*4=12 3*3=9
2*9=18 2*8=16 2*7=14 2*6=12 2*5=10 2*4=8 2*3=6 2*2=4
1*9=9 1*8=8 1*7=7 1*6=6 1*5=5 1*4=4 1*3=3 1*2=2 1*1=1