一. while循环
1. while语法
while(表达式)
{
语句;//循环体
}
说明:先判断表达式,然后执行语句,反复此操作,直到表达式不成立,退出循环结构
注意:{ }中为循环体,{ }可以没有,当没有{ }时,循环体仅为while后的第一条语句(同样适用于其他循环结构)
例: 求1-100 的和
int main()
{
int sum = 0;
int i = 1;
while(i <= 100)
{
sum += i;
i++;
}
printf("sum = %d\n",sum);
}
二. do while循环
2. do while语法
do
{
语句;//循环体
}
while(表达式);
说明:先执行语句,再判断表达式,反复此操作,直到表达式不成立,退出循环结构
例: 求1-100 的和
int main()
{
int sum = 0;
int i = 1;
do
{
sum +=i++;
}while(i < 101);
printf("sum = %d\n",sum);
}
三. for循环
3.for语法
for(exp1;exp2;exp3)//exp2为关系表达式
{
exp4;//循环体
}
说明:循环执行流程为:exp1—exp2—exp4—exp3--------exp2—exp4–exp3------…
当exp2为真时,才会向后执行exp2和exp3,一直循环此操作,直到exp2为假时,退出循环结构。(exp1只执行一次,且一定会执行)
注意:for的()中exp1,exp2,exp3可以省略, 但是两个分号不可省略。但exp2省略时,循环体中应该有跳出循环的语句(如break;)否则为死循环
例:1~100的和
int i,sum=0;
for(i=1:i<=100:i++)
{
sum+=i;
}
printf("sum = %d\n",sum);
continue和break
continue;//跳出当前循环,进行下一循环;
例:打印1~100以内3的倍数(continue)
看看应该打印什么
int main()
{
int n;
for(n=1;n<=100;n++)
{
if(n%3!=0)
{
continue;//当执行到continue时,会直接执行n++(exp3),然后判断exp2,再进行exp4
}
printf("%d ",n);
}
return 0;
}
break;//跳出整个循环
int main()
{
int i = 1;
while(i<=10)
{
if(i==5)
break;
printf("%d ",i);
i = i + 1;
}
return 0;
}
正确输出为:1 2 3 4
循环的嵌套
例:打印九九乘法表
int main()
{
int i,j;
for(i=1;i<10;i++)
{
for(j=1;j<=i;j++)
{
printf("%d*%d=%d",i,j,i*j);
}
printf("\n");
}
return 0;
}