我们知道,C语言中有各种结构,通过各种结构的相互配合、相互嵌套才得以完成一个个冗长的代码程序。而循环结构就是其中不可或缺的一种结构,其中循环结构又分为三种,分别是for循环、while循环和do…while循环。下面来介绍这三种循环结构及
continue
和
break
的使用。
一、for循环
for循环是编程语言中一种循环语句,而循环语句由循环体及循环的判定条件两部分组成,其表达式为:
for (表达式1;表达式2;表达式3)
{
语句;
}
- 表达式1用于循环变量的初始化
- 表达式2用于循环结束条件的判断
- 表达式3用于循环变量的调整
for循环的执行流程图如下:
表达式1作为初始化部分,不参与循环过程,接下来判断表达式2是否符合循环条件,如果满足条件则执行循环语句(不满足条件则循环结束)。接着执行表达式3后再返回表达式2继续判断,直至不满足循环条件后跳出循环,循环结束。
整个循环的过程中,表达式1初始化部分只被执行1次,剩下的就是表达式2、循环语句、表达式3在循环。
for循环的实践:
在屏幕上打印1~100的值:
#include<stdio.h>
int main()
{
int i = 0;
for (i = 1; i <= 100; i++)
{
printf("%d ", i);
}
return 0;
}
运行结果:
代码分析:
开始进入循环时,i=1,此时满足i<=100,所以打印i的值为1;打印结束后,执行表达式3,即i++,此时i=2,继续返回进行判断,此时一样满足i<=100,所以打印i的值为2…如此循环反复,直至i不再满足i<=100,跳出循环,程序执行结束。
大部分的循环是符合for循环的流程的,所以for循环在循环结构中的使用是较为频繁的
二、while循环
前面内容介绍了 for 循环,接下来再学习 while 循环就容易很多,因为它们的思想是一样的,只是在结构和执行顺序上有所不同。while循环的表达式相较于for循环的更简洁,其表达式如下:
while(表达式)
{
语句;
}
- 表达式用于判断是否要进入循环
while循环的执行流程图如下:
可以看出,虽然for循环与while循环的思想是一样的,但是while循环的执行流程却比for循环的相对更简单了一些。
下面对for和while循环作比较:
计算并在屏幕上打印出1~100之间3的倍数的数字之和:
#include<stdio.h>
//----for循环
int main()
{
int i = 0;
int sum = 0;
for (i = 1; i <= 100; i++)
{
if (i % 3 == 0)
{
sum = sum + i;
}
}
printf("%d\n", sum);
return 0;
}
//----while循环
int main()
{
int sum = 0;
int i = 1;
while (i <= 100)
{
if (i % 3 == 0)
{
sum = sum + i;
}
i++;
}
printf("%d\n", sum);
return 0;
}
运行结果:
while循环代码分析:
当表达式为真,则执行下面的语句;语句执行完之后再判断表达式是否为真,如果为真,再次执行下面的语句;然后再判断表达式是否为真……就这样一直循环下去,直到表达式为假,跳出循环。这个就是 while 的执行顺序。
通过对以上两个程序进行比较,我们可以看出,for循环其实和while循环的结构是差不多的,while循环相比于for循环只是少了括号里(执行流程里)的表达式3而已。
由前面两个循环结构相比较得知,两者的结构其实是相似的,所以while循环和for循环一样,在编写程序时while循环的使用也是比较多的
三、do…while循环
相比于上面两种循环,do…while循环就显得没有这么重要了,但它的存在肯定有用到的时候,换句话说,其实就是使用的次数是少之又少,其主要用于人机交互,其表达式如下:
do
{
语句;
}
while(表达式);
- 表达式用于判断是否要再次进入循环体
- 表达式后面的“ ;”不能省略
do…while循环的执行流程图如下:
do…while 和 while 的执行过程非常相似,唯一的区别是:“do…while 是先执行一次循环体,然后再判别表达式”。当表达式为“真”时,返回重新执行循环体,如此反复,直到表达式为“假”为止,此时循环结束。
do...while循环与上面两个循环不同的地方就是:不论进不进入循环都必须先执行一次,也就是先执行后判断
do…while循环实践:
打印1~10的数:
上面这个程序如果把while右边括号里的表达式限制条件改为“i<=1”或者其他任何不能进入循环的条件,那么程序将只打印1,因为do…while循环必定要执行一次。
四、continue语句和break语句
在循环执行的过程中,如果某些状况发生的时候,需要提前终止循环,这是非常常见的现象。C语言中提供了break
和continue
两个关键字,就是行用到循环中的。
• break的作用是用于永久的终止循环,只要break 被执行,直接就会跳出循环,继续往后执行。
• continue 的作用是跳过本次循环continue 后边的代码,在for循环和while循环中是有所差异的。
下面用两个例子(while循环)来展示一下continue和break的运用:
break举例:
#include <stdio.h>
int main()
{
int i = 1;
while (i <= 10)
{
if (i == 5)
break;//当i=5时,循环就终止了,直接跳出循环
printf("%d ", i);
i++;
}
return 0;
}
执行结果如下:
代码分析:
打印了1,2,3,4后,当i等于5的时候,循环在break 的地方终止,不再打印,不再循环。所以break 的作用就是永久的终止循环,只要break 被执行,break 外的第⼀层循环就终止了。那以后我们在循环中,想在某种条件下终止循环,则可以使用break 来完成我们想要的效果。
continue举例:
continue 是继续的意思,在循环中的作用就是跳过本次循环中continue后面的代码,继续进行下一次循环的判断。
#include <stdio.h>
int main()
{
int i = 1;
while (i <= 10)
{
if (i == 5)
continue;//当i等于5后,就执⾏continue,直接跳过continue后面的代码,继续返回判断
printf("%d ", i);
i++;
}
return 0;
}
代码分析:
到这里我们就能分析出来,continue 可以帮助我们跳过某⼀次循环continue 后边的代码,直接到循环的判断部分,进行下⼀次循环的判断,如果循环的调整是在continue 后边的话,可能会造成死循环。
好了,今天就分享到这了,想要了解得更深的朋友可以多去实践,实践是检验真理的唯一标准。感谢你的阅读,咱们下期再见!