设为首页 加入收藏

TOP

3.2.1 循环的概念(1)
2013-10-07 16:07:25 来源: 作者: 【 】 浏览:58
Tags:3.2.1 循环 概念

3.2  重复执行语句块

对大多数应用程序而言,重复一组语句的功能是基本要求。如果没有这种功能,则公司每当雇用一名新员工时就需要修改工资计算程序,每当我们想要玩自己喜欢的游戏时就需要重新加载。因此,下面首先介绍一下循环的工作原理。

3.2.1  循环的概念(1)

循环即重复执行一个语句序列,直到特定的条件为true或false为止。实际上,我们用目前所学过的C++(www.cppentry.com)语句就能编写出循环,需要的只是if和令人畏惧的goto而已。看下面的示例:

  1. // Ex3_07.cpp  
  2. // Creating a loop with an if and a goto  
  3. #include <iostream> 
  4. using std::cin;  
  5. using std::cout;  
  6. using std::endl;  
  7. int main()  
  8. {  
  9. int i(1), sum(0);  
  10. const int max(10);  
  11. loop:  
  12. sum += i;              // Add current value of i to sum  
  13. if(++i <= max)  
  14. goto loop;         // Go back to loop until i = 11 
  15. cout << endl 
  16. << "sum = " << sum << endl 
  17. << "i = " << i << endl;  
  18. return 0;  
  19. }  

本示例是累加整数1~10的和。首次执行该语句序列时,i的初始值是1,该变量与最初是0的sum相加。在if语句中,i递增为2,但只要它小于等于max,就无条件转移到loop,然后i的值(现在是2)再次与sum相加。每次使i递增并与sum相加的动作重复执行,直到最后在if语句中i递增到11时,才不再重复这一过程。如果运行该示例,则得到下面的输出。

  1. sum = 55 
  2. i = 11 

本示例非常清楚地展示了循环的工作过程,但使用了goto语句,还在程序中引入一个标签,这两者都是我们应该尽可能避免的。使用下面这条专门用于编写循环的for语句,可以实现相同的功能,甚至更多。

试一试:使用for循环

可以使用for循环来重写上一个示例。

  1. // Ex3_08.cpp  
  2. // Summing integers with a for loop  
  3. #include <iostream> 
  4. using std::cin;  
  5. using std::cout;  
  6. using std::endl;  
  7. int main()  
  8. {  
  9. int i(1), sum(0);  
  10. const int max(10);  
  11. for(i = 1; i <= max; i++) // Loop specifi cation  
  12. sum += i; // Loop statement  
  13. cout << endl 
  14. << "sum = " << sum << endl 
  15. << "i = " << i << endl;  
  16. return 0;  
  17. }  

示例说明

如果编译并运行该程序,那么将得到与前面的示例完全相同的输出,但这里的代码更加简单。决定循环操作的条件位于关键字for后面的圆括号中。该圆括号内共有3个以分号隔开的表达式:

第一个表达式最初执行一次,以设定循环的初始条件,在本示例中,该表达式将i设置为1。

第二个是逻辑表达式,它决定是否应该继续执行循环语句(或语句块)。如果第二个表达式为true,则继续执行循环;如果是false,则结束循环,然后执行循环后面的语句。在本示例中,只要i小于等于max,就一直执行下面的循环语句。

在循环语句(或语句块)执行之后,计算机将求出第三个表达式的值,在本示例中,每次循环都使i加1。在计算该表达式之后,第二个表达式再次被计算,以确定循环是否应该继续。

】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
分享到: 
上一篇8.5.1 避免不必要的复制操作(2) 下一篇3.2.1 循环的概念(2)

评论

帐  号: 密码: (新用户注册)
验 证 码:
表  情:
内  容:

·用 C 语言或者限制使 (2025-12-25 08:50:05)
·C++构造shared_ptr为 (2025-12-25 08:50:01)
·既然引用计数在做 GC (2025-12-25 08:49:59)
·Java 编程和 c 语言 (2025-12-25 08:19:48)
·. net内存管理宝典这 (2025-12-25 08:19:46)