上面我们讲了if的用法和表达式,今天我们来讲第二种语句——while和do-while语句。
while 循环的执行顺序非常简单,它的格式是:
while (表达式)
{
循环体;
}
当表达式结果为真,则执行下面的语句;语句执行完之后再判断表达式是否为真,如果为真,再次执行下面的语句;然后再判断表达式是否为真……就这样一直循环下去,直到表达式为假,跳出循环。
下面用一个例子来详解:
- int a = 1;
- while (a <= 10)
- {
- printf("%d\n", a);
- a++;
- }
- 这个例子中:
- 第一步:a=1,
- 第二步:判断a是否小于等于10;
- 第三步:因为a小于等于10,所以输出a的数值1,回车换行;然后a自加1,这个时候a=2;
- 第四步:判断a是否小于等于10,因为a=2,小于等于10;
- 第五步:因为a小于等于10,所以输出a的数值2,回车换行;然后a自加1,这个时候a=3;
- 这样一直重复到a=11时,因为a大于10;所以while里面的条件不成立,循环结束,跳出循环。
- 所以最后输出的数字为1--10.
while还有一种比较特殊的形式,就是while(1);这个表示表达式永远成立,如果循环内没有break 这个语句的话,那么这个就是一个死循环,以前好多电脑恶搞软件都是利用这个语句来使别人的电脑瘫痪无法工作。
do-while和while唯一的不同在于while是判断以后再执行,而do-while 是先执行一次以后再判断
它的结构语句如下:
do
{
//循环体
}
while (条件表达式);
我们还用上面那个例子来说明,这样比较直观可以看出区别
- int a = 1;
- do
- {
- printf("%d\n", a);
- a++;
- }
- while (a <= 10);
- 这个程序输出的结果为1--11这11个数,原因在于当a=11时,程序按照执行顺序会先输出a的数值,然后再判断a是否小于等于10;当判断a大于10以后;程序终止。