循环结构
一.while
1.计数器控制的循环
• 循环的次数是已知的
int counter, grade, total, average;
total=0;
counter=1;
while (counter<=10)
{
printf("Enter grade:");
scanf("%d", &grade);
total+=grade;
counter++;
}
average=total/10;
printf("Class average is %d\n", average);
2.标记控制的循环
– 当循环遇到标记值时,循环结束
• 循环次数未知
例:开发出一个班级平均分计算程序,每次执行该程序,都能够处理任意数量的学生分数。
#include <stdio.h> void main() { float average; int counter, grade, total; total = 0; counter = 0; printf("Enter grade, -1 to end:"); scanf("%d", &grade); while (grade != -1) { total += grade; counter++; printf("Enter grade, -1 to end:"); scanf("%d", &grade); } if (counter != 0) { average = (float)total / counter; printf("Class average is %.2f\n", average); } else printf("No grades were entered\n"); }
结果:
Enter grade, -1 to end:70
Enter grade, -1 to end:60
Enter grade, -1 to end:65
Enter grade, -1 to end:-1
Class average is 65.00
二.do-while

三.for
for ([expression1]; [expression2]; [expression3])
action;
– 三个表达式都是可选的(都可以为空)
– 如果表达式2为空,那么就假定该循环条件为真
• 会因此创建一个无限循环
使用说明:
– 表达式1和表达式3可以是任何合法的表达式
• 常用逗号表达式
for循环
for (sum=0,i=1;i<=100;i++)
sum+=i;
for (sum=0,i=1;i<=100;sum+=i,i++);
对多个变量初始化 修改多个变量的值
等效于:
for ([expression1]; [expression2];)
{
action;
expression3;
}
三.break
• 提前从循环结构中退出
• 跳过switch结构的剩余部分
#include <stdio.h>
void main()
{
int x;
for (x = 1; x <= 10; x++)
{
if (x == 5)
break;
printf("%d ", x);
}
printf("\nBroke out of loop at x == %d\n", x);
}
结果:
1 2 3 4
Broke out of loop at x == 5

四.continue
– 在 while、do-while 或 for 结构中执行continue语句时,
continue语句能够跳过该结构中剩余语句,而执行下一个循环过
程
– 说明:
• 在while和do-while结构中,continue 语句被执行之后立即进行下
一次循环的条件测试
• 在for结构中,continue语句被执行之后表达式3依然会被被执行,
然后再进行循环条件的测试


浙公网安备 33010602011771号