循环结构

一.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依然会被被执行,
然后再进行循环条件的测试

 

 



posted @ 2021-11-29 12:03  妖孽教主  阅读(95)  评论(0)    收藏  举报