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

代码四执行结果如下:


第四种执行结果

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

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容