优化for循环

写代码不只是一种技术活!更能够体现艺术范!!!编程

==================================================================数组

1.for()循环在众多编程语言中都有着不可替代的地位,而且在各类语言中的语法规范一致:编程语言

   for(option1; option2; option3) {ide

     //code bodyspa

   }code

2.那么如何使得本身的编写的for()循环更具备效率呢?????blog

  2.1.例子(以Java语言为例):使用for()循环遍历数组,且将数组中的元素打印到控制台io

  2.2.通常的(也是大众的)作法以下:event

     

public class Test {
    public static void main(String[] args) {
        int[] arrs = {2,1,3,4,5,6,9};
        for(int i=0; i<arrs.length; i++) {
            System.out.println(arrs[i]);
        }
    } 
}
遍历数组

3.for()循环分析:效率问题出如今循环语句的第二个条件上------->i<arrs.length;当循环每执行一次时"i<arrs.length"条件其实执行了两部分,第一部分是计算arrs.length,第二部分才是循环所真正须要的比较语句即:i < arrs.length;因此每次顺带执行arrs.length是一个多余的步骤,试想当一个数组或者容器很大时,反复计算它的大小是一项艰巨的任务,且下降了程序的效率;其实数组或者容器的大小只需计算一次便可。class

4.小结:咱们在写for()时,无心间就写出了冗余的,效率低下的程序!!!

5.解决之道:让计算容器的大小操做只出现一次!

6.状况一:好的!那么你此时茅塞顿开,你也许会这样想:

public class Test {
    public static void main(String args) {
            int[] arrs = {1,2,3,4,5,6};      
            int arrsLength = arrs.length;
            for(int i=0; i<arrsLength; i++) {
                Systm.out.println(arrs[i]);
            }       
    }
}
状况一

   6.1.在方法内定义一个变量来获取arrs.length,这样看似没问题,可是当这个方法内只有循环语句内要使用到arrs.length时,定义一个变量arrsLength来获取arrs.length又不合理(规则:尽可能不要定义全局的变量)

7.状况二:貌似还有一种更好的解决方案

 

public class Test {
    public static void main() {
            int[] arrs = {1,2,3,4,5};
            for(int i=0, arrsLength=arrs.length; i<arrsLength; i++) {
                System.out.println(arrs[i]);
            }
    }
}
最终版

  7.1这样作的好处在于:1.避免了过多定义全局变量2.只在初识化时计算了一次容器大小,提升了效率

总结:代码是值得品味的!作一个优雅的码农!!!

相关文章
相关标签/搜索