C语言循环for、while、do while、continue、break 、goto控制语句实例讲解

时间:2017-07-28
C语言循环语句包括for、while、do while、continue、break 、goto等等,本文章向大家介绍这几种循环语句的使用方法和实例,需要的朋友可以参考一下。

有的时候,可能需要多次执行同一块代码。一般情况下,语句是顺序执行的:函数中的第一个语句先执行,接着是第二个语句,依此类推。

编程语言提供了允许更为复杂的执行路径的多种控制结构。

循环语句允许我们多次执行一个语句或语句组,下面是大多数编程语言中循环语句的一般形式:

循环结构

循环类型

C 语言提供了以下几种循环类型。点击链接查看每个类型的细节。

循环类型 描述
while 循环 当给定条件为真时,重复语句或语句组。它会在执行循环主体之前测试条件。
for 循环 多次执行一个语句序列,简化管理循环变量的代码。
do...while 循环 除了它是在循环主体结尾测试条件外,其他与 while 语句类似。
嵌套循环 您可以在 while、for 或 do..while 循环内使用一个或多个循环。

(1)while 循环

格式如下:

while ( 条件 ){
     语句1;
     语句2;
     ....
}

1)如果条件成立,就会执行循环体中的语句(“循环体”就是while后面大括号{}中的内容)。然后再次判断条件,重复上述过程,直到条件不成立就结束while循环

2)while循环的特点:如果while中的条件一开始就不成立,那么循环体中的语句永远不会被执行

例如:

/*
输出十次hello world
*/
int main(){
    
    int  i = 0;

    while (i < 10) {
       
        printf("Hello world!----%d\n",i);
        i++;
  
     }

}

如果省略第11行的i++,count就一直是i,那么i<10一直都是成立的,这个while循环将会陷入“死循环”,一直在重复执行第10行代码。

(2)do while 循环

格式如下:

do {
     语句1;
     语句2;
      ...
} while (条件);

1)注意第5行,后面是加上一个分号;的

2)当执行到do-while循环时,首先会执行一遍循环体中的语句(“循环体”就是do后面大括号{}中的内容)。接着判断while中的条件,如果条件成立,就执行循环体中的语句。然后再次判断条件,重复上述过程,直到条件不成立就结束while循环

3)do-while循环的特点:不管while中的条件是否成立,循环体中的语句至少会被执行一遍

4)其实do while循环的用法跟while循环是差不多的,这里就不举例子了。

(3)for循环

for循环是所有循环结构中最复杂的。

 for (语句1; 条件; 语句2) {
     语句3;
     语句4;
     ...
 }

1)for循环开始时,会先执行语句1,而且在整个循环过程中只执行一次语句1

2)接着判断条件,如果条件成立,就会执行循环体中的语句(“循环体”就是for后面大括号{}中的内容)

3)循环体执行完毕后,接下来会执行语句2,然后再次判断条件,重复上述过程,直到条件不成立就结束for循环

例如 :

int main(){
/*
利用循环输出:
  1
  1 2
  1 2 3
 */
    for (int i =1 ; i <= 3; i++) {
       for (int j = 1; j <= i; j++) {
            printf("%d ",j);
        }
        printf("\n");
        
    }
    
    return 0;  
}

输出结果为:

1
1 2
1 2 3

循环控制语句

循环控制语句更改执行的正常序列。当执行离开一个范围时,所有在该范围中创建的自动对象都会被销毁。

C 提供了下列的控制语句。点击链接查看每个语句的细节。

控制语句 描述
break 语句 终止 loop 或 switch 语句,程序流将继续执行紧接着 loop 或 switch 的下一条语句。
continue 语句 引起循环跳过主体的剩余部分,立即重新开始测试条件。
goto 语句 将控制转移到被标记的语句。但是不建议在程序中使用 goto 语句。

(1) break

前面在switch语句中已经用到了break,它的作用是跳出switch语句。它也可以用在循环结构中,这时候它的作用是跳出整个循环语句。

这里以for循环为例子,break也可以用在while循环、do-while循环中。

for (int i = 0; i<5; i++) {
    printf("i=%d \n", i);
    
    if (i>2) {
        break;
    }
}

上面代码的意思是当i>2时,就跳出整个for循环,也就是结束for循环,所以输出结果是:

i=0 
i=1 
i=2 
i=3

(2)continue

continue只能使用在循环结构中,它的作用是跳过这一次循环,直接进入下一次循环。

这里以for循环为例子,continue也可以用在while循环、do-while循环中。

for (int x = 0; x<10; x++) {
     if (x%2==0) {
         continue;
     }
    
     printf("x=%d \n", x);
 }

注意第2行,当x%2==0,也就是当x是2的倍数时,就跳过这次循环,不执行第6行语句,直接进入下一次循环。输出结果:

x=1 
x=3 
x=5 
x=7 
x=9 

跟break一样,continue只会影响它所在的那个for循环

无限循环

如果条件永远不为假,则循环将变成无限循环。for 循环在传统意义上可用于实现无限循环。由于构成循环的三个表达式中任何一个都不是必需的,您可以将某些条件表达式留空来构成一个无限循环。

#include <stdio.h>

int main ()
{

   for( ; ; )
   {
      printf("This loop will run forever.\n");
   }

   return 0;
}

当条件表达式不存在时,它被假设为真。您也可以设置一个初始值和增量表达式,但是一般情况下,C 程序员偏向于使用 for(;;) 结构来表示一个无限循环。

注意:您可以按 Ctrl + C 键终止一个无限循环。