Java经典循环嵌套99乘法表如何玩出花来?

Java的初学者在学到循环结构部分的时候,会遇到一个经典的题目:打印99乘法表,就像这样:


常规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();
        }
    }

代码四执行结果如下:


第四种执行结果

这套操作下来很有成就感啊,循环嵌套随便玩啊~

你可能感兴趣的:(Java经典循环嵌套99乘法表如何玩出花来?)