有了分支结构,我们的代码已经可以完成许多的操作。然而试想一下,假如我们要重复的执行一个操作许多次,我们应如何实现?比如,现要求在屏幕上打印10个:“hello world”
写10个printf语句?那代码未免过于繁杂。C语言提供了循环语句,让我们能够轻松实现这一操作。
常见的循环语句
1.while语句,代码展示如下:
while (条件表达式)
{
需执行代码;
}
首先判断条件表达式是否成立,若不成立则直接跳过整个代码块,若成立则进入内部循环体执行代码,完成后跳转到判断部分继续循环。需注意的是,一般来说循环体由循环变量控制,为避免死循环,应在需执行代码处进行循环变量调整,使循环n次后循环不成立时跳出循环。
break语句:
break语句能够让循环在执行这一句代码后直接跳出循环,并向后执行。循环中,一般break语句和if语句联合使用,当满足条件时跳出循环,break语句使代码更加灵活,同时可有效避免死循环的产生。
continue语句:
continue语句能够让循环在执行这一句代码后跳过循环体后面的代码,直接跳至判断部分并继续执行,continue语句一般也和if语句连用,可实现在满足条件时不执行循环内部某些操作的需求,continue同样使代码更加灵活。但需注意的一点是,continue语句一般应放在循环变量调整部分的前面,否则很可能引起死循环。
下面为实例:
int main()
{
int i = 0;
while (i<10)
{
printf("%d ", i);
if (i == 5)
continue;
i++;
}
return 0;
}
目标实现1-9数字的打印,现想要不打印数字5,然而此处代码continue语句放在了循环变量调整部分的后面,意味着一旦i=5循环变量没有调整的机会便再次跳至判断部分,从而形成死循环。
2.for循环,代码展示如下:
for (变量初始化; 条件表达式; 变量调整)
{
需执行代码;
}
for循环将变量初始化,条件判断,变量调整部分集中,使代码易于调整,且可读性更好。
首先进行变量初始化,然后判断条件是否成立,若不成立直接跳出循环,若成立则进入循环内部执行相应代码,执行完毕后进行变量调整,然后进入条件判断.......循环往复直到不满足条件跳出。
for循环中同样有break和continue语句,其功能与前文相同,在此不进行赘述
3.do while循环,代码展示如下:
do
{
需执行代码;
}
while (条件表达式);
大体和while语句相同,其比较特殊的一点是,无论如何,先执行一次循环内部代码,然后再进行判断是否循环,所以当我们需要实现先至少执行一次代码,在判断是否循环时,推荐使用do while语句。
do while语句同样有break和continue语句,其功能也与前文相同