循环(高质量4.10)
1.循环的类型:
a, 确定循环-计数器控制的循环,
b, 不确定循环-标志控制的循环,
c, 无限循环-死循环。
2.循环使用的建议:
a, 确定的循环使用for循环,
b, 不确定的循环使用while循环,
c, do while 不常用。
3.for语句的循环控制变量:
a,
不使用浮点数控制循环,
b,不在循环体内修改循环变量。
4.循环语句的效率
a,正确的遍历多维数组,能够提高遍历数组的效率。
b,遍历多维数组的方法取决于语言安排数组元素的存储方式。
c,Fortran采用先列后行存储,C++/C采用限行后列的方式。
d, 影响遍历效率的本质是大型数组导致的内存页面交换次数、cache命中概率的高低,而非循环次数本身。
单个内存页容纳的字节数有限,大型数组可能分多内存页保存。
结论:C++/C中多维数组遍历,先行后列总是优于先列后行。
5.如果循环体内存在逻辑判断,并且循环次数较大,宜将逻辑判断一道循环外。
bad:
1 for(i=0;i<N;i++) 2 { 3 if(condition) 4 { 5 doSome(); 6 } 7 else 8 { 9 doOther(); 10 } 11 }
good:
1 if(conditon) 2 { 3 for(i=0;i<N;i++) 4 { 5 doSome(); 6 } 7 } 8 else 9 { 10 for(i=0;i<N;i++) 11 { 12 doOther(); 13 } 14 }