一,for循环
一般形式:(表达式1;表达式2;表达式3)
{语句}
3个表达式的作用:
表达式1,设置初始条件,只执行一次,可以为零,一或多个变量设置初值。
表达式2,是循环条件表达式,用来判定是否继续循环,在每次执行循环体前先执行此表达式,决定是否继续执行循环
表达式3,作为循环的调整,例如使循环变量增值,它是在执行完循环体后才进行的。
因此,for语句可以理解为 for(循环变量赋值;循环条件;循环变量增值)
eg: for(i=1;i<=100;i++)
sum+=i;
注:表达式1可以省略,即不设置初值,但表达式1后的分号不能省略
二,while循环
形式:表达式1;
while表达式2
{
语句
表达式3
}
eg:将上面例子可以改写为:
i=1;
while(i<=100)
{
sum+=i;
i++;
}
三,do while
形式:do
{
语句
}while(表达式);
while和do while的区别:只有while后面的括号内指定循环条件,因此为了使循环能正常结束,应在循环体中包含使循环体结束的语句(如i++)
while 语句先测试表达式的值再执行循环体,而do while 语句先执行循环体再测试表达式的值。如果表达式的值一开始就是假,while语句的循
环体一次都不执行,而do while 语句的循环体仍然要执行一次再跳出循环。(借用PDF)
#include<stdio.h>
int Func1()
{
int sum = 0;
int i = 101;
while (i <= 100)
{
sum += i;
i++;
}
return sum;
}
int Func2()
{
int rtv = 0, j = 101;
do
{
rtv += j;
j++;
} while (j <= 100);
return rtv;
}
int main()
{
printf("%d\n",Func1());
printf("%d\n",Func2());
return 0;
}
四,break
break语句可以使流程调处swith结构,继续执行语句下面的语句,还可以用来从循环体内跳出循环
一般形式:break;
其作用是使流程跳到循环体之外,接着执行循环体下面的语句
注:break语句只能用于循环语句和swith语句之中,不能单独使用
五,continue
形式:continue;
提前结束本次循环,接着执行下次循环
六,break和continue的区别
二者的相同点:都可以用在循环语句中,break还可用在switch中。
break语句跳出当前循环,break后面的所有语句都不再执行,跳出for循环。注意跳出的是距离此break语句最近的循环。
continue语句,跳出本次循环,后面的语句不再执行,直接到下一次循环
#include<stdio.h>
int Func1()
{
int sum = 0;
for (int i = 1; i <= 100; i++)
{
sum = sum + i;
if (i == 2)
{
printf("执行continue\n");
continue;
}
if (i == 4)
{
printf("执行break\n");
break;
}
printf("sum=%d\n", sum);
}
printf("循环结束");
return sum;
}
int main()
{
Func1();
return 0;
}
该程序continue部分执行i=2之前的加和
break执行i=4之前的加和