一、概述
C语⾔是结构化的程序设计语⾔,这⾥的结构指的是【顺序结构】、【选择结构】、【循环结构】,C语⾔是能够实现这三种结构的,其实我们如果仔细分析,我们⽇常所⻅的事情都可以拆分为这三种结构或者这三种结构的组合。
这里介绍循环结构,我们可以通过for循环、while循环和do-while循环实现循环结构
二、 for 循环
for循环结构是一种常用的循环结构,用于重复执行一段代码,直到满足某个条件才停止循环。
for循环结构的语法如下:
for (初始条件; 终止条件; 步长) {// 循环体代码}
其中,
初始条件:指定循环变量的初始值,通常是一个赋值语句。
终止条件:指定循环变量达到某个条件时终止循环,通常是一个判断条件。
步长:指定每次循环变量的改变量,通常是一个自增或自减的操作。
- 循环体代码:在每次循环时执行的代码块。
示例:
for (int i = 0; i < 10; i++) {printf("%d",i);}
以上代码会输出0到9的数字
- 需要注意的是,for循环结构中的三个部分都可以根据实际需求进行调整,可以根据需要省略其中的任意部分。
三、 while 循环
C语言中的while循环是一种迭代结构,用于重复执行一段代码,直到指定条件不再满足为止。
while循环的语法如下:
while (循环条件) {// 循环体代码}
在循环开始之前,会首先对条件进行判断。如果条件为真(非零),则执行循环体中的代码。执行完一次循环后,会再次对条件进行判断,如果条件仍然为真,则继续执行循环体中的代码,以此类推。
需要注意的是,循环体内的代码块必须使用大括号
{}
来包裹起来,以明确指定循环体的范围。
示例:
int i = 0;while (i < 5) {printf("%d\n", i);i++;}
上述代码会输出 0 到 4 的数字,每次循环都会打印出当前的数字,并将变量
i
的值递增。在使用while循环时,需要确保循环体内的代码能够修改循环条件,否则可能会陷入无限循环的情况。循环条件的变量或表达式在循环体内必须会发生变化,否则循环将永远执行下去。为了避免无限循环,可以使用
break
语句在某个条件满足时跳出循环,或者使用continue
语句在某个条件满足时跳过当前迭代。
四、 do-while 循环
do-while循环是c语言中的一种循环结构。与while循环不同的是,do-while循环会先执行一次循环体,然后再判断循环条件是否满足,如果满足则继续执行循环体,否则结束循环。
do-while循环的基本语法如下:
do { // 循环体代码} while (循环条件);
其中,循环体是需要重复执行的代码块,可以包含一条或多条语句。循环条件是一个逻辑表达式,用于判断是否继续执行循环体。如果循环条件为真,则继续执行循环体,否则停止循环。
do-while循环的特点是先执行一次循环体,然后再判断循环条件是否满足。这意味着循环体至少会执行一次。因此,do-while循环适用于需要至少执行一次循环体的情况。
下面是一个简单的示例,演示了如何使用do-while循环计算1到10的和:
#include int main() { int num = 1; int sum = 0; do{sum += num;num++; } while (num <= 10); printf("Sum = %d\n", sum);return 0;}
该程序首先声明了一个变量num
,并将其初始化为1,用于追踪当前的数字。同时声明了一个变量sum
,用于保存计算的结果。然后,使用do-while循环计算1到10的和,每次循环将num
加到sum
中,然后递增num
。循环条件为num <= 10
,表示num
小于等于10时继续执行循环体。最后,输出计算的结果。
- 运行该程序,将会输出结果:Sum = 55,即1到10的和。
五、 break
在C语言中,`break`是一种控制流语句,用于中断循环或者跳出一个代码块。
在循环中,break
语句用于提前结束循环,无论循环条件是否满足。一旦break
语句执行,程序将立即退出当前循环,并继续执行循环后面的代码。
例如:
for (int i = 0; i < 10; i++) {if (i == 5) {break;}printf("%d\n", i);}
上述代码中,当i
等于5时,break
语句会被执行,循环将提前结束。在这种情况下,只会打印出0、1、2、3、4这五个数字。
- 另外,
break
语句也可以用于switch
语句中,用于终止switch
语句的执行。通常,switch
语句会根据表达式的值来决定执行哪一段代码,而break
语句可以用于跳出switch
语句,防止继续往下执行其他分支的代码。
int num = 2;switch (num) {case 1:printf("One\n");break;case 2:printf("Two\n");break;case 3:printf("Three\n");break;default:printf("Other\n");}
- 在上述代码中,因为
num
的值为2,所以只会执行case 2
下的代码,并打印出”Two”。如果没有break
语句,程序将会继续执行后面的case
分支,直到遇到break
语句或者switch
语句结束。
总而言之,break
是一种控制流语句,用于中断循环或者跳出一个代码块。在循环中,break
语句用于提前结束循环,而在switch
语句中,break
语句用于终止switch
语句的执行。
六、 continue
在C语言中,continue
是一个关键字,用于控制循环语句的执行流程。当程序执行到continue
语句时,会立即跳过当前循环中此语句之后的代码,然后开始下一次循环的执行。
continue
主要用于在循环中跳过某些特定的迭代。当某个条件满足时,可以使用continue
语句来跳过该次循环的剩余代码,并开始下一次循环的执行。
以下是一个使用continue
语句的示例:
#include int main() {int i = 0;for (i = 1; i <= 10; i++) {if (i == 5) {continue;// 当i等于5时跳过该次循环}printf("%d ", i);}return 0;}
上述示例中,continue
语句用于在i
等于5时跳过该次循环,然后继续进行下一次循环。因此,输出结果为:
1 2 3 4 6 7 8 9 10
需要注意的是,continue
语句只会影响当前循环的执行流程,而不会结束整个循环。如果希望在满足某个条件时完全跳出循环,可以使用break
语句。