写代码不只是一种技术活!更能够体现艺术范!!!编程
==================================================================数组
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.只在初识化时计算了一次容器大小,提升了效率
总结:代码是值得品味的!作一个优雅的码农!!!