上期我们一起探究了分支语法结构,那么本期就来一起看看循环结构是怎样进行的。
在C语言中呢,提供了有如下3种循环结构的语句:while循环语句,for循环语句和do-while循环语句以及goto语句这种特殊的返回跳转语句。
首先来介绍一下while语句,它的语法结构同if语句十分相似,对比如下:
if(表达式)
语句;
while(表达式)
语句;(如果想要循环体包含更多语句,可以用大括号{语句}
二者很相似吧,不同之处就在于while语句可以进行循环,if执行后无法进行循环。
while语句的执行流程如下:
可以看出其先进行表达式判断,若结果为0(假),循环直接结束,反之不为0则为真,循环语句执行,结束后再继续以此类推。用法举例如下:
执行后即可得到1到10的数。
然后再看for循环语句,它在循环语句中使用的最多,使用形式如下:
for(表达式1;表达式2;表达式3;) (可以加上大括号{更多语句}用来执行更复杂问题。
其中,表达式1为循环变量的初始化,整个循环过程只进行一次
表达式2为循环结束条件的判断,决定循环是否继续
表达式3为循环变量的调整
for循环语句执行流程图如下:
示例如下:用for循环打印1到10整型
从两种循环的流程来看,都有三部分,初始化,判断,调整,相比于while循环,for循环 三个部分更加集中,便于代码维护,在代码较多较长时形式更方便一些。
然后是do-while循环,它相比前两种,运用最少,其语法如下:
do
语句;
while(表达式);
与前两种的不同之处在于它先进去循环体执行while后的表达式一次后表达式为真,就会进行下一次,表达式为假,则不再继续循环。所以do-while语句至少执行一次循环。
do-while语句流程如下:
示例如下:打印1到10的整数
最后我们看goto语句,这是C语言提供一种特殊的语法,可以用来在同一个函数内进行跳转到设置好的标号处。如:
#include <stdio.h>
int main()
{
printf("hehe\n");
goto next;
printf("haha\n");
next:
printf("跳过了haha的打印\n");
return 0;
}
可见其跳转的妙用,但是,若使用不当,就会使得代码运行混乱,打乱程序运行进程,要慎用,在多层循环中快速跳出循环时使用常有不错的效果。