循环语句 (6~10)

循环语句

l  在程序中C++5种方法执行重复操作:

1.         for:  循环前检查条件

2.         while: 循环前检查条件

3.         do/while循环后检查条件

4.         递归

5.         无条件分支: 局部(goto)和非局部(setjmplongjmp)


 

for 循环

l  通用形式

for (<initialize>; <exit test>; <increment>)

<stmt>

 

     Initialize: 初始化

     exit test: 退出条件测试

     increment: 循环条件值增加

     stmt: 循环体中的语句

l  For循环把初始化、退条条件测试和循环条件值增加集中放在一起。

l  循环头部的三个部分都是可选的,并都可以包含任意的表达式。

l  注意:可以在<initialize>部分声明变量 (与C不同之处)。

l  使用示例

for ( ; ;) ; /* 永久循环 */

 

/* stdin复制到 stdout */

for (int c, (c = getchar()) != EOF; putchar (c));

 

/* n的阶乘 */

for (int i = n; n > 2; n--) i *= (n – 1);

 

/* 遍历链表*/

for (List *p = head; p != 0; p = p->next) action (p);


 

 while 循环

l  通用形式

while (<condition>)

   <stmt>

     <condition>: 循环条件

     <stmt>: 循环体中的语句

l  当检查到循环条件为非0时重复执行循环体中的语句。

l  实际上,for 循环可以用while循环来表达:

<initialize>

while (<exit test>)

{

   <loop body>

   <increment>

}

l  使用示例:

while (1) ;  /* 永久循环 */

 

int c;

while ( (c = getchar ()) != EOF)

  putchar();

 

/* n的阶乘 */

i = n;

while (n >=0 )

   i *= --n;

 

/* 遍历链表*/

p = head;

while (p != 0)

{

   action (p);

   p = p->next;

}

 


 

do while 循环

l  通用形式:

do <stmt> while ( <condition> );

 

l  do while没有for while 常见。

l  注意:检查退出条件是在循环体的后面,所以循环体至少要被执行一次。

 

int  main( void )

{

   const int MAX_LEN = 80;

   char name_str [MAX_LEN];

   do {

       cout << “ enter name (exit to quit”);

       cin.getline (name_str,MAX_LEN);

       process (name_str);

   } while (strcmp (name_str,”exit”)!=0);

return 0;

 }

 


 

break continue 语句

l  提供在循环体中的类似goto 的控制形式

#include <stream.h>

int main (void)

{

  /* 找出第一个负数*/

  int number;

  while (cin >> number)

     if (number < 0)

        break;

   cout << “number = “ << number << “/n”;

 

  //…

  /* 从控制台读取数据,将其中的偶数累加起来*/

  int sum, total;

  for (sum = total = 0; cin >> number; total++)

  {

If (number & 1)

    continue;

 sum += number;

      }

      cout << “sum = “ << sum << “, total = “ << total << “/n”;

  return 0;

}

 

你可能感兴趣的:(c,list,测试,action)