在写程序的时候,经常会要求我们的程序做一些重复的动作,这个时候我们就需要用到循环语句了。
C语言中的三种循环语句:
- while
- for
- do while
接下来就依次介绍着三种循环语句
一、while循环
while循环的通用形式
while(expression)
statement
statement可以是以分号结尾的简单语句,也可以是用花括号括起来的复合语句。
如果expression为真(即非零),那么就继续循环执行statement,然后再判断expression的值,直到expression的值为零,那么就跳出循环,不再执行statement。
循环终止
通常来说,一个循环都有一个终止的条件,否则这个循环就会一直执行下去,这样会占用许多的资源,最后有可能会导致程序的崩溃。
【注】如果要让循环终止,那么测试的表达式的值一定要有变化,否则这个表达式的值就是刚进入循环的值,这样就会陷入死循环。
一个简单的死循环的例子
while(1)
; //空语句,什么都不执行
这个死循环什么都不做,只是占用资源,所以这样的循环一般是不用的。
如果我们要计算从1加到一百的结果,该怎么使用while循环呢,接下来我们就来看一看这个例子:
#include <stdio.h>
int main()
{
int a = 1;
int sum = 0;
while(a <= 100)
{
sum += a;
a++;
}
printf("the result is %d\n", sum);
return 0;
}
a 这个变量是1到100, while后面的括号就是测试条件,当a<=100 的时候就把sum+a 的值赋给sum,并且a自加1。最后将累加的结果打印出来,打印的结果如下
二、for循环
for循环的通用形式
for(init-statement; condition; expression)
statement;
for循环将初始化,测试,更新三个行为组合在一起。
for循环后面的圆括号中有三个表达式,第一个表达式是用来初始化的,这个表达式只会在for循环开始时执行一次,第二个表达式是测试条件,在执行循环之前先对这个表达式求值,如果表达式的值为真,就执行循环体中的语句,然后在执行第三个表达式;如果第二个表达式的值为假,那么就不会执行循环体中的内容,结束循环,然后执行第三个表达式。第三个表达式是在每次循环结束时求值。
我们就用for循环来改写上面这个例子
#include <stdio.h>
int main()
{
int i;
int sum = 0;
for(i = 1; i <= 100; i++)
{
sum += i;
}
printf("sum = %d\n", sum);
printf("i = %d\n", i);
return 0;
}
首先将i初始化为1, 然后判断i<=100是否成立,如果成立就执行sum += i;执行完之后,i++;如果 i <= 100不成立,那么就结束了循环。我们来看一下最终的结果吧,这里我们把i和sum的值都输出了。
三、do while循环
do while循环的通用形式
do
statement
while(expression);
【注】:do while循环是先执行一次,才判断的,所以这个循环至少执行一次。
我们同样用上面的例子来测试一下:
#include <stdio.h>
int main()
{
int i = 1;
int sum = 0;
do
{
sum += i;
i++;
}
while(i <= 100);
printf("sum = %d\n", sum);
return 0;
}
以下是输出的结果
结果和上面两种循环算出来的是一样的。
四、循环的选择
从上面的第三个循环的例子,我们可以看到不管用什么循环语句,最终都能得到正确的答案,所以这三种循环都是差不多的,但我们也需要根据情况来选择合适的循环语句。
一般而言,但循环涉及初始化和变量更新时,用for循环比较合适。如果我们不知道循环的终止条件时,使用while循环比较合适。
循环是程序中使用很多的一种语句,所以我们要能够熟练的运用循环语句。