C# · 12月 19, 2021

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!—-%dn”,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

int main ()

{

for( ; ; )

{

printf(“This loop will run forever.n”);

}

return 0;

}

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

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