Java的初学者在学到循环结构部分的时候,会遇到一个经典的题目:打印99乘法表,就像这样:
顺便贴出经典代码:
public static void main(String[] args){
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();
}
}
我们看到这个代码输出的99乘法表大概呈现一种直角三角形的形状,感谢袁隆平爷爷,让我们想到了这个问题:
下面开始作死:
代码二:
public static void main(String[] args){
for(int i = 1;i < 10;i++){
for(int j = 1;j < 10-i;j++)//第一个for循环打印出前面的空格
System.out.print("\t");
for(int k = 1;k <= i;k++)//打印完空格之后再打印本体
System.out.print(k + "*" + i + "=" + i*k + "\t");//这行代码和经典版一样
System.out.println();
}
}
注释已经写的比较明白,我们来cmd一下结果如何:
代码三:
这个难点在于到底什么顺序输出看起来最漂亮呢?
public static void main(String[] args){
for(int i = 9;i > 0;i--){//与代码一的区别仅在此处,相当于反向输出代码一
for(int j = 1;j <= i;j++){
System.out.print(j + "*" + i + "=" + i*j + "\t");
}
System.out.println();
}
}
编译运行一下:
代码四:
public static void main(String[] args){
for(int i = 9;i > 0;i--){
for(int j = 1;j < 10-i;j++)
System.out.print("\t");
for(int k = 1;k <= i;k++)
System.out.print(k + "*" + i + "=" + i*k + "\t");
System.out.println();
}
}
代码四执行结果如下:
这套操作下来很有成就感啊,循环嵌套随便玩啊~