提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档
一、循环语句是什么?
循环语句是用于重复执行某条语句的语句,它包含一个控制表达式,每循环执行一次都要对控制表达式进行判断,如果表达式为真,则继续执行循环。C语言提供了三种循环语句,分别为 while
语句, do while
语句和 for
语句。
二、循环语句
1. while
while 循环的语句组成如下
while(表达式)
{
语句
}
表达式决定了它的判定方式,表达式里面的结果为真或者大于0,则循环执行里面的语句,如果为零或者不满足表达式,则退出整个while循环语句。
语句决定了它循环的内容和循环结束的方式,如果没有循环的结束的条件,它就会陷入死循环。
一般的结束循环的方式有:使得表达式逐渐不满足、return,break,continue。
下面这个就是简单的使用 while 循环打印1-10的数字
#include <stdio.h>
int main()
{
int i = 1;
while(i<=10)
{
printf("%d ", i);
i = i+1;
}
return 0;
}
这个也就是使表达式逐渐不满足:每次循环(i+1)直到 i >10 使得表达式不满足;
return 就是在执行语句过程中直接返回,跳出循环:
不过一般不这样使用,需要满足条件直接打断,我们可以使用 break :
#include <stdio.h>
int main()
{
int i = 1;
while(i<=10)
{
if(i == 5)
{
break;
}
printf("%d ", i);
i = i+1;
}
return 0;
}
上式的结果是打印1-5的数字
总结: break 在while循环中的作用: 其实在循环中只要遇到 break ,就停止后期的所有的循环,直接终止循环。 所以:while中的 break是用于永久终止循环的。
当我们需要只是终止本次循环时,我们就可以使用 continue :
我们可以看出当 i = 5 时,continue终止了本次语句的执行,使得打印命令没有执行,而 i + 1 在continue 之上,所以当 i = 6 时,if条件使得continue不起作用,从而可以打印接下来的数字。
总结: continue 在while循环中的作用就是: continue是用于终止本次循环的,也就是本次循环中continue后边的代码不会再执行,而是直接跳转到while语句的判断部分。进行下一次循环的入口判断。
2. do while
do while循环的语句组成如下
do
{
语句
}
while(表达式)
代码如下(示例):
#include <stdio.h>
int main()
{
int i = 10;
do
{
printf("%d\n", i);
}while(i<10);
return 0;
}
do while 语句的特点是至少会循环也就是执行一次语句,使用场景有限,所以不常使用,其他与while都非常相似。
3. for
for循环的语句组成如下
for (表达式1;表达式2;表达式3)
{
语句
}
表达式1: 表达式1为初始化部分,用于初始化循环变量的。
表达式2 :表达式2为条件判断部分,用于判断循环时候终止。
表达式3: 表达式3为调整部分,用于循环条件的调整。
下面打印使用 for 循环打印1-10的数字
#include <stdio.h>
int main()
{
int i = 0;
//for(i=1/*初始化*/; i<=10/*判断部分*/; i++/*调整部分*/)
for(i=1; i<=10; i++)
{
printf("%d ", i);
}
return 0;
}
for的三个表达式均可省略,表达式1省略的话,就是变量没初始化。表达式2省略,就是没有循环结束的条件,表达式3省略,就是结束语句时,不做任何调整和变动。
实际上,while 和 for 起到的功能是一样的,也是需要初始化变量+判断部分+调整部分比如:
int i = 0;
//使用while
i=1;//初始化部分
while(i<=10)//判断部分
{
printf("hollow world\n");
i = i+1;//调整部分
}
//实现相同的功能,使用for
for(i=1; i<=10; i++)
{
printf("hollow world\n");
}
在实际使用过程中,while的三个条件表达式比较分散,而for的条件则比较清楚和集中,所以一般使用for 循环的次数较多。
关于 for 循环的一些建议:
1. 不要在for 循环体内修改循环变量,防止 for 循环失去控制。
2. 建议for语句的循环控制变量的取值采用“前闭后开区间”写法。
4. goto语句
C语言中提供了可以随意滥用的 goto语句和标记跳转的标号。 从理论上 goto语句是没有必要的。 但是某些场合下goto语句还是用得着的,最常见的用法就是终止程序在某些深度嵌套的结构的处理过 程,例如一次跳出两层或多层循环。 这种情况使用break是达不到目的的。它只能从最内层循环退出到上一层的循环。
for(...)
for(...)
{
for(...)
{
if(disaster)
goto error;
}
}
…
error:
if(disaster)
总结
以上就是关于C语言循环语句的简单介绍,本文仅仅简单介绍了循环语句的使用,实际编写代码时会大量使用分支与循环语句进行复合使用来达到目标效果。如果要了解分支语句,可以看看我的上一篇文章(http://t.csdn.cn/wVyMK)希望诸位可以和我一起慢慢的,从简入深的 学习C语言。
本章完。