循环语句
在C语言中,在一定条件下能够循环执行多次某段程序的语句称为循环语句。被反复执行的程序被称为循环体。
注:下文中的“循环条件”、“语句”的正确名称应是“表达式”。
while 语句
while语句是循环语句中的一种。
结构为:
while (循环条件)
{
语句;
}
其中,循环条件左右两边的括号不能省略。
注意:当循环条件恒为真时,该循环为死循环,无法跳出。
当循环条件为真时,while就会执行它里面的语句,之后再返回查看循环条件是否为真,如果再为真,则再次执行语句。
当循环条件为假时,while便不再会继续。
int main()
{
int a = 0;
while (a <= 8) //循环8次
{
printf("%d",a); //打印12345678
a++;
}
return 0;
}
一般还会在循环语句中用到下面两个关键字:
break:意即“跳出”,当程序阅读到该指令时,便会直接跳出循环,并不再进行循环的条件判断。
int main()
{
int a = 0;
while (a <= 8) //本应循环8次
{
if (a == 5)
break; //中途break跳出了循环
printf("%d",a); //实际只打印了01234
a++;
}
return 0;
}
continue:意为“继续”,当程序阅读到该指令时,会放弃继续执行while中剩下的语句,转而回到while的开头重新进行循环条件的判断。
int main()
{
int a = 0;
while (a <= 8)
{
if (a == 5)
{
a++;
continue; //重头开始循环
}
printf("%d",a); //实际只打印了01234678,没有5
a++;
}
return 0;
}
上述的break和continue对于下面提到的循环语句均有效
for语句
for语句是C语言中的另一种循环语句。
结构为:
for (初始化表达式;条件判断表达式;调整表达式)
{
语句;
}
初始化表达式是为循环定义一个提供判断依据的变量,当初始化表达式的值满足条件判断表达式的条件时,执行for循环的语句,然后执行调整表达式,对初始化表达式的值进行调整。
int main()
{
int a;
for (a = 0; a <= 8; a++)
{
printf("%d", a); //打印012345678
}
return 0;
}
for循环的三个表达式均可以留空白,只要加上;符号即可。
但当条件判断表达式留空白时,该循环会陷入死循环。
int main()
{
int a;
for (;;)
{
printf("1" ); //将持续不断地打印1
}
return 0;
}
do while语句
do while语句亦是循环语句中的一种,与while语句类似,有所区别的地方在于,do while是先执行语句,然后再进行循环的判断。
do while语句的结构为:
do
{
语句
}
while (循环条件)
在执行时,do while语句会先执行do里面的语句,然后再进行while的循环判断,这意味着,无论如何,do while语句必定会循环一次。