循环的三大结构(for,while,do while)。
1.for循环
for(表达式1; 表达式2 ; 表达式3 )
循环体语句;
for语句的执行循序:首先执行表达式1初始化循环变量,接下来就是执行表达式2的判断部分,表达式2 的结果如果==0,则循环结束;表达式2 的结果如果!=0则执行循环语句,循环语句执行完后,再去执行表达式3 ,调整循环变量,然后再去表达式2 的地方执行判断, 表达式2 的结果是否为0,决定循环是否继续。
整个循环的过程中,表达式1初始化部分只被执行1次,剩下的就是表达式2、循环语句、表达式3在循环。
表达式1:初值表达式,用于循环变量的初始化,只执行一次。
表达式2:条件表达式,用于循环结束条件的判断。一旦表达式为“假”,循环结束。
表达式3:步长表达式,用于循环变量的调整。
循环体语句:被反复执行的语句,只能是一条语句,如果要多条语句,要用大括号括起来组成复合语句。
相关例题:
注意语句2并不属于循环,所以只做了1次。
答案:10 ; 1 ; 10 ; 101 ;
2.while循环
while(表达式)
循环体结构;
while先判断表达式,表达式为真,循环执行;表达式为假,循环终止。
注意:1. 0为假,非0为真。while(2),while(x=2)都是死循环。
2. while循环里要有能改变循环条件真假性的操作。
3.while和for循环的比较
for和while在实现循环的过程中都有初始化、判断、调整这三个部分,但是for循环的三个部分非常集中,便于代码的维护,而如果代码较多的时候while循环的三个部分就比较分散,所以从形式上for循环要更优一些。
4.do while 循环
do
语句;
while(表达式);
while和for这两种循环都是先判断,条件如果满足就进入循环,执行循环语句,如果不满足就跳出循环。
而 do while 循环则是先直接进入循环体,执行循环语句,然后再执行 while 后的判断表达式,表达式为真,就会进行下一次,表达式为假,则不再继续循环。
执行流程如下图:
在do while循环中先执行图上的“语句”,执行完语句,在去执行“判断表达式”,判断表达式的
结果是不为0,则继续循环,执行循环语句;判断表达式的结果为0,则循环结束。
所以在do while语句中循环体是至少执行一次的,这是do while 循环比较特殊的地方。
5.循环中的break和continue
在循环执行的过程中,如果某些状况发生的时候,需要提前终止循环,这是非常常见的现象。C语言中提供了break和continue两个关键字,就是应该到循环中的。
- break的作用是用于永久的终止循环,只要break被执行,直接就会跳出循环,继续往后执行。
- continue的作用是跳过本次循环continue后边的代码,在for循环和while 循环中有所差异的。
#include <stdio.h>
int main()
{
int i = 1;
while(i<=10)
{
if(i == 5)continue;
//当i等于5后,就执行continue,直接跳过continue的代码,去循环的判断的地方
printf("%d ", i);
i = i+1;
}
return 0;
}
因为这里跳过了i = i+1,所以i一直为5,程序陷入和死循环 ,而for循环不同。
#include <stdio.h>
int main()
{
int i = 1;
for(i=1; i<=10; i++)
{
if(i == 5)
continue;//这里continue跳过了后边的打印,来到了i++的调整部分
printf("%d ", i);
}
return 0;
}
这里只有5不被输出,因为输出的语句被跳过,但是i++的语句依然被执行,所以不是死循环。