一、for循环
1.框架
for(表达式1;表达式2:表达式3)
{
语句块1;
}
表达式1:初始化,最早被执行,有且执行一次;
表达式2;判断,为真循环继续,为假循环结束;
表达式3;循环加一,修改循环因子的值,执行完语句块一后 执行,且每次都执行。
//注意:括号里的是分号,且不能省略。
2.例题
(1).输出三个数字
int main()
{
int i;
for (i=0;i<=3;i++)
{
printf("%d\n",i);
}
return 0;
}
//注意:for循环中的三个表达式都可以省略,两个分号不能省。
二、while循环
1.框架
while(表达式1)
{
语句块1;
}
表达式1为真循环继续,为假循环结束。
2.例子
int main()
{
int i=0;//初始化
while(i<3)//判断
{
printf("%d\n",i);
i++;//修改循环因子
}
return 0;
}
三、do while循环
1.框架
do
{
语句块1;
}while(表达式1);
表达式1为真循环继续,为假循环结束。
2.举例
int main()
{
int i=0;//初始化
do
{
printf("%d\n",i);
i++; //修改循环因子
}while( i < 3 )//判断
}
//注意:while保证语句块至少执行0次及以上
do while保证语句块至少执行1次及以上。
当表达式的第一次的值为“真”时,两种循环完全相同。
四、break和continue关键字的区别
1.break的使用:用于跳出switch或者跳出一层循环。
(1).例如:求满足如下条件的x值。
1+2+3+…+x<1000且1+2+3+…+x+(x+1)>1000
输出x和求和的值。
void SumTo1000()
{
int sum=0;//保存累加的值
int i;
for (i=1; ;i++)
{
sum += i;
if(sum > 1000)
break;//符合条件,跳出循环
}
printf("x=%d,sum=%d\n",i-1,sum);
}
2.continue(不常用)
(1).作用:提前结束本次循环,直接进入下一次循环
(2)例如:输出100~200之间的不能被3整除的数。
普通实现:
for(n=100;n<=200;n++)
{
if(n%3!=0)
printf("%d\n",n);
}
利用continue关键字实现
for(n=100;n<=200;n++)
{
if(n%3=0)
continue;//提前结束本次循环,后面的输出不执行
printf("%d\n",n);
}