九九乘法表循环的优化

九九乘法表循环的优化

我们想得到以下格式的九九乘法表:

1*1=1

1*2=2  2*2=4

1*3=3  2*3=6  3*3=9

……

……………………………………………………9*9=81

初代码:

import java.util.Optional;

public class test_nine_nine_multi {

    public static void main(String[] args) {

        for(int i=1;i<10;i++){

            for (int j=1;j<10;j++){

                System.out.print(i+"*"+j+"="+i*j+"\t"); //行列转化前

            }

            //每打完9个数字 换行,第一重循环结束打印

            System.out.println();

        }

    }

}

运行结果:

我们发现,1*n在第一列,并且不是我们想要的结构,首先要进行行列转化,将1*n的行转化到1*n列,其余同理

将输出的代码改为System.out.print(j+"*"+i+"="+i*j+"\t");//行列转化后

运行结果为:

现在我们发现有很多重复计算显示项目,不想让程序重复计算,那么优化的方法为计算到j<=i即可停止打印

优化代码如下:

public class test_nine_nine_multi {

    public static void main(String[] args) {

        for(int i=1;i<10;i++){

            for(int j=1;j<10;j++){

                      //限制条件

                if(j<=i){

                    System.out.print(i+"*"+j+"="+i*j+"\t");

                }

            }

            System.out.println();

        }

    }

}

运行结果:

继续优化:

满足条件的打印,根据去掉部分的特点,j>i的不打印,后面的都不打印,节省循环,可以直接break退出循环,只要打印列数>行数,后面就不循环了,这种方法循环次数会少一些

代码为:

public class test_nine_nine_multi1 {

    public static void main(String[] args) {

        for(int i=1;i<10;i++){

            for(int j=1;j<10;j++){

                if(j>i){

                    break;

                }

                System.out.print(j+"*"+i+"="+i*j+"\t");

            }

            System.out.println();

        }

    }

}

或者以这样的方式优化:满足条件的打印,根据去掉部分的特点,j=i的打印结束,后面的循环停止

 部分代码:         if(j==i){

                    break;

                }

运行结果:

源代码在码云Gitee 有兴趣的小伙伴可自取:九九乘法表循环的优化代码 · zyt/麦当劳投资人 - 码云 - 开源中国 (gitee.com)icon-default.png?t=N7T8https://gitee.com/zytscode/mcdonalds-investors/blob/master/%E4%B9%9D%E4%B9%9D%E4%B9%98%E6%B3%95%E8%A1%A8%E5%BE%AA%E7%8E%AF%E7%9A%84%E4%BC%98%E5%8C%96%E4%BB%A3%E7%A0%81

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值