循环结构v3.1导论.pptVIP

  • 3
  • 0
  • 约8.1千字
  • 约 56页
  • 2016-11-26 发布于湖北
  • 举报
先利用笨方法写一遍,再引入循环 * 使用指导---3 发现循环,寻找变化(不止一个) 确定循环条件 确定次/个数 不确定次/个数时,寻找结束条件 循环体 相邻两项之间有何变化 每次操作与控制变量的关系 注意: 各变量赋初值 循环趋于结束 for循环语句 适用于已知循环次数的情况 基本形式 for(表达式1;表达式2;表达式3) 语句; 其中,表达式2是循环条件,语句是循环体 for循环语句的说明 ⑴ for后面的括号()不能省略。 ⑵ 表达式1:一般为赋值表达式,给控制变量赋初值。 ⑶ 表达式2:通常是关系表达式或逻辑表达式,是循环控制的条件。 ⑷ 表达式3:一般为赋值表达式,给控制变量增量或减量。 ⑸ 表达式之间用分号分隔。 ⑹ 语句部分称为循环体,当需要执行多条语句时,应使用复合语句。 for语句等价于下列语句: 表达式1; while (表达式2) { 语句; 表达式3; } for循环执行过程 求表达式1的值 判断表达式2是否为真,如果为真,则执行循环体语句 求表达式3的值 接下来再判断表达式2是否为真,如果为真,继续执行循环体语句以及求表达式3的值,直到表达式2为假为止。 假 表达式2 语句 真 求解表达式1 求解表达式3 for语句的下一语句 例 用for语句求sum=1+2+3+…+100?的值 #include stdio.h int main() { int i,sum=0; for(i=1;i=100;i++) sum=sum+i; printf(sum=%d,sum); return 0; } 例 键盘输入一批学生的成绩,找出最低分 #include stdio.h void main() { int i,score,min,n; printf(请输入学生人数n:); scanf(%d,n); printf(请输入%d个学生成绩:,n); scanf(%d,score); /*读入第1个学生的成绩*/ min=score; for(i=2;i=n;i++) { scanf(%d,score); if(minscore) min=score; } printf(min=%d,min); } 直到输入负数为止 int main() { int i=1,score,min; printf(请输入第1个学生成绩:); scanf(%d,score); min=score; do { printf(请输入第%d个学生成绩,i+1); scanf(%d,score); if(score0) { i++; if(minscore) min=score; } }while(score=0); printf(%d个学生最低分数为%d\n,i,min); return 0; } 不确定循环次数,但知道结束条件 ch=getchar(); while(ch!=‘\n) { if((ch=ach=z)|| (ch=Ach=Z)) letter++; else if(ch=0ch=9) digit++; else if(ch== ) space++; else other++; ch=getchar(); } 说明:应用灵活,三个表达式都可省略,但for里的“;”不可省 (1)省略“表达式1”,此时应在for语句之前给循环变量赋初值。如 for(;i=100;i++) sum=sum+i; 执行时,跳过“求解表达式1”这一步,其他不变。 (2)省略“表达式2”,即不判断循环条件,循环无终止地进行下去。也就是认为表达式2始终为真。如:for(i=1; ;i++) sum=sum+i; 相当于: i=1; while(1) {sum=sum+i;i++;} 说明: (3)省略“表达式3”,如: for(i=1;i=100;) {sum=sum+i;i++;} i++的操作作为循环体的一部分,效果是一样的,都能使循环正常结束。 (4) 省略“表达式1”和“表达式3”,即只给循环条件,完全等同于while语句。如: i=1; for(;i=100;) while(i=100) {sum=sum+i;

文档评论(0)

1亿VIP精品文档

相关文档