C语言程序设计ch04-4 循环结构程序设计
时间:2026-01-16
时间:2026-01-16
for语句 p74 一般形式:
for([expr1] ;[ expr2] ;[ expr3]) 循环体语句;forexpr1 假(0) expr2 真(非0) 循环体 expr3
执行流程:
for语句一般应用形式: for(循环变量赋初值;循环条件;循环变量增值) { 循环体语句; } for语句中expr1, expr2 ,expr3 类型 任意,都可省略,但分号;不可省 无限循环: for(;;) for语句可以转换成while结构
例 用for循环求1+2+…+100 #include <stdio.h> int main() { int i,sum=0; for(i=1;i<=100;i++) sum+=i; printf("%d",sum); return 0; }
expr1; while(expr2) { 循环体语句; expr3; }
灵活应用for语句
例:#include<stdio.h> int main( ) { int i; for(i=0;i<10;i++) putchar(‘a’+i); return 0; } 例:#include<stdio.h> int main( ) 运行结果:abcdefghij 例:#include<stdio.h> { int int main( )i=0; for(;i<10;) { int i=0; putchar(‘a’+(i++)); for(;i<10;putchar(‘a’+i),i++); return return 0; 0; } }
例:#include<stdio.h> int main( ) { int i=0; for(;i<10;i++) putchar(‘a’+i); return 0; }
4.5 辅助控制语句 break语句 p83 功能:在循环语句和switch语句中,终止并跳出循 环体或开关体
break只能终止并跳出最近一层的结构 break不能用于循环语句和switch语句之外的 任何其它语句之中
while 假(0) expr 真(非0) ……
do …… break; …... 真(非0) while expr
break;……
假(0)
forexpr1 switch 假(0)
expr2真(非0) …… break; expr case
const 1 语句组1break;
const 2 语句组2break; …...
const n 语句组nbreak;
default 语句组break;
…...
expr3
例 break举例:输出圆面积,面积大于100时停止
#define PI 3.14159 int main() { int r; float area; for(r=1;r<=10;r++) { area=PI*r*r; if(area>100) break; printf("r=%d,area=%.2f\n",r,area); } return 0; }
例 break举例:小写字母转换成大写字母,直至输入非字母字符
#include <stdio.h> int main() { int i,j; char c; while(1) { c=getchar(); if(c>='a' && c<='z') putchar(c-'a'+'A'); else break; } return 0;
continue语句 p83for expr1 假(0) expr2 真(非0) …… …… do 假(0)
功能:结束本次循环,跳过循环体中一部分尚未 执行的语句,进行下一次是否执行循环体的判断 仅用于循环语句中while
expr真(非0) …… continue; while expr ……
continue;…...
continue;…...
真(非0)
expr3
假(0)
例 求输入的十个整数中正数的个数及其平均值
/*using continue statement*/ #include <stdio.h> int main() { int i,num=0,a; float sum=0; for(i=0;i<10;i++) { scanf("%d",&a); if(a<=0) continue; num++; sum+=a; } printf("%d plus integer's sum :%6.0f\n",num,sum); printf("Mean value:%6.2f\n",sum/num); return 0; }