for循环结构
一般形式:for(表达式1;表达式2;表达式3)语句
表达式可以不在括号内,但分号一定不能少。
1+2+3+…+100=?
#include<stdio.h>
void main()
{
int sum=0,i;
for(i=1;i<=100;i++)
{
sum=sum+i;
}
printf("1+2+3+.....+100=%d\n",sum);
}
while和do-while循环结构
while语句(当型循环)
1+2+3+…+100=?
#include<stdio.h>
void main()
{
int sum=0,i=1;
while(i<=100)
{
sum+=i;
i++;
}
printf("1+2+3....+100=%d\n",sum);
}
do…while语句(直到型循环)
先无条件执行一次,再判断条件是否满足,如果条件满足就继续执行,不满足条件结束循环。
1+2+3+…+100=?
#include<stdio.h>
void main()
{
int sum=0,i=1;
do
{
sum+=i;
i++;
}while(i<=100);
printf("1+2+3....+100=%d\n",sum);
}
continue语句和break语句
break语句和continue语句的区别是:continue语句只是结束本次循环,强制跳转到下一次循环,而break语句是终止整个循环。
break语句
在switch条件语句和循环语句中都可以使用break语句:
1、当它出现在switch条件语句中时,作用是终止某个case并跳出switch结构。
2、当它出现在循环语句中,作用是跳出当前内循环语句,执行后面的代码。
3、当它出现在嵌套循环语句中,跳出最近的内循环语句,执行后面的代码。
#inlcude<stdio.h>
int main(void)
{
int i = 0,flag,m,n;
while (1)
{
i++;
printf("i = %d\n", i);
if (i == 10)
{
break; //跳出while循环
}
}
for (m = 0; m < 10; m++)
{
for (n = 0; n < 10; n++)
{
if (n == 5)
{
flag = 1;
break; //跳出for (n = 0; n < 10; n++)
}
printf("n=%d\n",n);
}
printf("m=%d\n",m);
if (flag == 1)
{
break; //跳出for (m = 0; m < 10; m++)
}
printf("m=%d\n",m);
}
return 0;
}
continue语句
在循环语句中,如果希望立即终止本次循环,并执行下一次循环,此时就需要使用continue语句。
#include<stdio.h>
int main(void)
{
int sum = 0,i; //定义变量sum
for ( i = 1; i <= 100; i++)
{
if (i % 2 == 0) //如果i是一个偶数,执行if语句中的代码
{
continue; //结束本次循环
}
sum += i; //实现sum和i的累加
}
printf("sum = %d\n", sum);
return 0;
}
循环的嵌套
比如单片机中的延时函数,AVR单片机的延时函数等等。
#include<stdio.h>
void main()
{
int i,j;
for(i=0;i<9;i++)
{
for(j=0;j<i;j++)
{
printf("%d*%d=%d\n",i,j,i*j);
}
}
}
几种循环的比较:
1、3种循环都可以用来同一问题,一般情况下它们可以相互代替。
2、while和for循环是先判断表达式,后执行语句;而do-while循环是执行语句后判断表达式。
3、凡是用到while循环能完成的,for循环全部可以完成。