嵌套循环

嵌套循环的引入是为了解决多层循环的问题,比如:打印13行14列的数字13;




java嵌套增强for循环跳过外层的循环 java嵌套循环优化_循环自增

13 x 14



打印结果为:




java嵌套增强for循环跳过外层的循环 java嵌套循环优化_循环自增_02

13 x 14 result




在这块代码中,外层循环次数相当于行数,内层循环数相当于每行的列数,打印字符“13”的代码被执行了13 x 14 次;此时的循环次数不大,效果不是很明显,再看考虑如下的嵌套循环代码:




java嵌套增强for循环跳过外层的循环 java嵌套循环优化_嵌套循环_03

嵌套循环



上述代码在执行过程中相关变量的实例化、初始化、比较、自增的次数如下:




java嵌套增强for循环跳过外层的循环 java嵌套循环优化_初始化_04

嵌套循环分析



嵌套循环优化

对于系统性能来说,无疑不是一个巨大的影响。那么,现在我们可以对其进行优化:




java嵌套增强for循环跳过外层的循环 java嵌套循环优化_实例化_05

第一次优化



优化后,相关变量的实例化、初始化、比较、自增的次数是这样的:




java嵌套增强for循环跳过外层的循环 java嵌套循环优化_实例化_06

第一次优化的结果



相比较于优化前,效果好了很多,尤其是变量i,j效果是看得见的,但是呢,还有优化的空间,可以把变量i,j,k的初始化统一放到循环外部执行:




java嵌套增强for循环跳过外层的循环 java嵌套循环优化_初始化_07

第二次优化



那么,相关变量的实例化、初始化、比较、自增的次数会是这样的:




java嵌套增强for循环跳过外层的循环 java嵌套循环优化_嵌套循环_08

第二次优化的结果



此时再来对比原始数据,从数据上就能明显看出差别。再看执行结果,代码性能有了明显的提升:

如果觉得效果不明显,还可以加大循环次数多次测试验证。

嵌套循环建议

对嵌套循环的一些使用建议:

  1. 使用循环嵌套时,内层循环和外层循环的循环控制变量不能相同。
  2. 循环嵌套结构的书写,采用右缩进格式,以便于清楚的体现循环层次的关系,提高代码的可读性和层级关系;
  3. 循环层级不能超过3级,我刚开始学编程的时候,老师曾说过这样的话:如果你的循环嵌套超过3级,那就是你的代码逻辑出问题了;层级太多意味着更复杂的逻辑,层级太深,不仅代码可读性差,也不利于后期维护。
  4. 不要再循环中修改数据结构,比如列表数据的增删改。