循环语句及其控制语句

资料引用地址来源:C 循环 | 菜鸟教程 https://www.runoob.com/cprogramming/c-loops.html

1.while 循环

定义:当给定条件为真时,重复语句或语句组。它会在执行循环主体之前测试条件。

语法:

while(condition)

{

   statement(s);

}

在这里,statement(s) 可以是一个单独的语句,也可以是几个语句组成的代码块。

condition 可以是任意的表达式,当为任意非零值时都为 true。当条件为 true 时执行循环。 当条件为 false 时,退出循环,程序流将继续执行紧接着循环的下一条语句。

2.        for

定义:for 循环允许您编写一个执行指定次数的循环控制结构。

格式:for ( init; condition; increment )

{ statement(s); }

for 循环的控制流:

1)        init 会首先被执行,且只会执行一次。这一步允许您声明并初始化任何循环控制变量。您也可以不在这里写任何语句,只要有一个分号出现即可。

2)        接下来,会判断 condition。如果为真,则执行循环主体。如果为假,则不执行循环主体,且控制流会跳转到紧接着 for 循环的下一条语句。

3)        在执行完 for 循环主体后,控制流会跳回上面的 increment 语句。该语句允许您更新循环控制变量。该语句可以留空,只要在条件后有一个分号出现即可。

4)        条件再次被判断。如果为真,则执行循环,这个过程会不断重复(循环主体,然后增加步值,再然后重新判断条件)。在条件变为假时,for 循环终止

5)        ***while重点是循环条件,for重点是循环次数。

6)        笔记:

#include <stdio.h>

int main ()

{

/* for 循环执行 */ for( int a = 10; a < 20; a = a + 1 ) {

printf("a 的值: %d ", a); }

return 0;

}

有的编译器会报错,应改为:int a=10;

for(; a<20; a=a+1){

}

3.        do...while 循环

定义:不像 for 和 while 循环,它们是在循环头部测试循环条件。在 C 语言中,do...while 循环是在循环的尾部检查它的条件。

do...while 循环与 while 循环类似,但是 do...while 循环会确保至少执行一次循环。

例子:int main ()

{

   int a = 10;

   do{

       printf("a 的值: %d ", a);

          a = a + 1;

   }while( a < 10 );

运行结果:a 的值: 10

4 .嵌套循环

定义:您可以在 while、for 或 do..while 循环内使用一个或多个循环。

4.1  嵌套 for 循环

语法:for (initialization; condition; increment/decrement)

{

    statement(s);

    for (initialization; condition; increment/decrement)

    {

        statement(s);

        ... ... ...

    }

    ... ... ...

}

例子:找出质数的程序:int main ()

{

   int i, j;

   for(i=2; i<100; i++) {

      for(j=2; j <= (i/j); j++)

        if(!(i%j)) break; // 如果找到,则不是质数

      if(j > (i/j)) printf("%d 是质数 ", i);

   }return 0;

}

4.2  嵌套 while 循环

语法:while (condition1)

{

    statement(s);

    while (condition2)

    {

        statement(s);

        ... ... ...

    }

    ... ... ...

}

例子:int main()

{

    int i=1,j;

    while (i <= 5){

        j=1;

        while (j <= i ){

            printf("%d ",j);j++;

        }printf(" ");

        i++;

       }return 0;

}

运行结果

1

1 2

1 2 3

1 2 3 4

1 2 3 4 5

 4.3嵌套 do...while 循环 

语法:do

{

    statement(s);

    do

    {

        statement(s);

        ... ... ...

    }while (condition2);

    ... ... ...

}while (condition1);

例子:int main()

{

    int i=1,j;

    do{

        j=1;

              do{

            printf("*");j++;

        }while(j <= i);

        i++;printf(" ");

    }while(i <= 5);

    return 0;

}运行结果:

*

**

***

****

*****

2.循环控制语句continue,break,goto

2.1 Continue语句

定义:C 语言中的 continue 语句有点像 break 语句。但它不是强制终止,continue 会跳过当前循环中的代码,强迫开始下一次循环。

对于 for 循环,continue 语句执行后自增语句仍然会执行。对于 while 和 do...while 循环,continue 语句重新执行条件判断语句。

 

例子:int main ()

{

   int a = 13;

   do{

      if( a == 15){

         /* 跳过迭代 */

         a++;printf("跳过迭代 ");

         continue;

      }

      printf("a 的值: %d ", a);

      a++;

   }while( a < 17);

   return 0;

}

运行结果:

a 的值: 13

a 的值: 14

跳过迭代

a 的值: 16

例子:int main ()

{

   int a = 13, i;

   for(i=0;i<4;i++){

       if(i==1){

              printf("跳过 ");continue;

       }printf("i=%d ", i);

   } 

}运行结果:

i=0

跳过

i=2

i=3