循环(高质量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 }

 

posted @ 2014-06-06 09:41  helo_blog  阅读(146)  评论(0编辑  收藏  举报