第5章循环结构程序设计
5 循 环 结构程序设计 第 章
为什么需要循环控制scanf("%f,%f%f.%f.%f"&score1,&score2,&score3,&score4,&score5)要向计算机输入全班50个学生的成绩1/输入一个学生5门课的成绩(重复50次相同的输入操作)解决aver=(score1+score2+score3+score4+score5)/5;方法求该学生平均成续分别统计全班50个学生的平均成绩:printf("aver=%7.2f",aver):(重复50次相同的计算操作1/输出该学生平均成绩重复写49个同样的程序段i=1:小设整型专量初值为1while(i<=50)//当i的值小于或等于50时执行花括号内的语句scanf(%f.%f%f.%f.%f&scorel.&score2.&score3,&score4,&score5)aver=(score1+score2+score3+score4+score5)/5;printf("aver=%7.2faver);i++;/每执行完一次循环使的值加1
为什么需要循环控制 i=1; //设整型变量i初值为1 while(i<=50) //当i的值小于或等于50时执行花括号内的语句 { scanf("%f,%f,%f,%f,%f",&score1,&score2,&score3,&score4,&score5); aver=(score1+score2+score3+score4+score5)/5; printf("aver=%7.2f",aver); i++; //每执行完一次循环使i的值加1 } 重复写49个同样的程序段 scanf(″%f,%f,%f,%f,%f″,&score1,&score2,&score3,&score4,&score5); //输入一个学生5门课的成绩 aver=(score1+score2+score3+score4+score5)/5; //求该学生平均成绩 printf(″aver=%7.2f″,aver); //输出该学生平均成绩 • 要向计算机输入全班50个学生的成绩; (重复50次相同的输入操作) • 分别统计全班50个学生的平均成绩; (重复50次相同的计算操作) 解决 方法
用while语句实现循环N表达式while(表达式)语句语句while语句可简单地记为:只要当循环条件表达式为真(即给定的条件成立),就执行循环体语句。语句就是循环体。循环体可以是一个简单的语句,可以是复合语句(用花括号括起来的若干语句)。执行循环体的次数是由循环条件控制的,这个循环条件就是上面一般注意while循环的特点是形式中的表达式,它也称为循环条件表达式。当此表达式的值为先判断条件表达式,真”(以非0值表示)时,就执行循环体语句;为假”(以0表示)时,后执行循环体语句。就不执行循环体语句
用while语句实现循环 while(表达式) 语句 while语句可简单地记为: 只要当循环条件表达式为真(即给定的条件成 立),就执行循环体语句。 “语句 ”就是循环体。循环体可以是一个简单的语句,可以是复合语 句(用花括号括起来的若干语句)。 执行循环体的次数是由循环条件控制的,这个循环条件就是上面一般 形式中的 “表达式 ”,它也称为循环条件表达式。当此表达式的值为 “真 ” (以非0值表示)时,就执行循环体语句;为 “假 ” (以0表示)时, 就不执行循环体语句。 注意 while循环的特点是 先判断条件表达式, 后执行循环体语句。 表达式 语句 Y N
while语句实现循环sum=0【例5.1】求1+2+3+..+100,即100m=1i=1#include<stdio.h>假int main()i≤100L真inti=1,sum=0//定义变量的初值为1sum的初值为0while(i<=100)//当i>100,条件表达式i<=100的值为假,不执行循环体sum=sum+i1/循环体开始i=i+11//第1次累加后,sum的值为1sum=sum+i;i++;1/加完后,的值加1,为下次累加做准备11/循环体结束printf(sum=%d\n",sum)://输出1+2+3+100的累加和C:AWINDOWS)system32/cmd.exe-Xreturn O;um=5050请按任意键继续(1)循环体如果包含一个以上的语句,应该用花括号括起来,作为复合语句出现。(2)不要忽略给i和sum赋初值:否则它们的值是不可预测的,结果显然不正确。语句。如果无此语句,则的值始终不改变,3)在循环体中应有使循环趋向于结束的语句。如本例中的计+;”循环永远不结束
while语句实现循环 【例5.1】求1+2+3+.+100,即σ𝑛=1 100 𝑛 #include<stdio.h> int main() { int i=1,sum=0; //定义变量i的初值为1,sum的初值为0 while(i<=100) //当i>100,条件表达式i<=100的值为假,不执行循环体 { //循环体开始 sum=sum+i; //第1次累加后,sum的值为1 i++; //加完后,i的值加1,为下次累加做准备 } //循环体结束 printf("sum=%d\n",sum); //输出1+2+3.+100的累加和 return 0; } i≤100 sum=sum+i i=i+1 真 假 sum=0 i=1 (1) 循环体如果包含一个以上的语句,应该用花括号括起来,作为复合语句出现。 (2) 不要忽略给i和sum赋初值,否则它们的值是不可预测的,结果显然不正确。 (3) 在循环体中应有使循环趋向于结束的语句。如本例中的“i++;”语句。如果无此语句,则i的值始终不改变,循环永远不结束
用do.while语句实现循环注意dodowhile语句的特语句点是,先无条件地while(表达式);执行循环体,然后判断循环条件是否成立。语句V表达式N
用do⋯while语句实现循环 do 语句 while(表达式); 注意 do.while语句的特 点是,先无条件地 执行循环体,然后 判断循环条件是否 成立。 表达式 语句 Y N