嵌套循环
嵌套循环的引入是为了解决多层循环的问题,比如:打印13行14列的数字13;
13 x 14
打印结果为:
13 x 14 result
在这块代码中,外层循环次数相当于行数,内层循环数相当于每行的列数,打印字符“13”的代码被执行了13 x 14 次;此时的循环次数不大,效果不是很明显,再看考虑如下的嵌套循环代码:
嵌套循环
上述代码在执行过程中相关变量的实例化、初始化、比较、自增的次数如下:
嵌套循环分析
嵌套循环优化
对于系统性能来说,无疑不是一个巨大的影响。那么,现在我们可以对其进行优化:
第一次优化
优化后,相关变量的实例化、初始化、比较、自增的次数是这样的:
第一次优化的结果
相比较于优化前,效果好了很多,尤其是变量i,j效果是看得见的,但是呢,还有优化的空间,可以把变量i,j,k的初始化统一放到循环外部执行:
第二次优化
那么,相关变量的实例化、初始化、比较、自增的次数会是这样的:
第二次优化的结果
此时再来对比原始数据,从数据上就能明显看出差别。再看执行结果,代码性能有了明显的提升:
如果觉得效果不明显,还可以加大循环次数多次测试验证。
嵌套循环建议
对嵌套循环的一些使用建议:
- 使用循环嵌套时,内层循环和外层循环的循环控制变量不能相同。
- 循环嵌套结构的书写,采用右缩进格式,以便于清楚的体现循环层次的关系,提高代码的可读性和层级关系;
- 循环层级不能超过3级,我刚开始学编程的时候,老师曾说过这样的话:如果你的循环嵌套超过3级,那就是你的代码逻辑出问题了;层级太多意味着更复杂的逻辑,层级太深,不仅代码可读性差,也不利于后期维护。
- 不要再循环中修改数据结构,比如列表数据的增删改。