2019 6循环控制结构

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

6.1 if /goto 语句
语句格式:
标识程序中某 个语句的位置
语句标号:语句;
…… if (表达式) goto 语句标号;
……
语句功能: 当(表达式)的值为非零时则重复 执行“语句标号”后面的语句。
EXAMPLE[6-1]:
请用C语言实现右侧程序 流程图所描述的算法:
即:sum=1+2+3+4+……+100
main() { int i, sum; sum=0; i=1; do { sum+=i; i++; }}wwhhiillee((i<=10);0); printf(“%d\n”, sum); }
EXERCISES[6-4]:
A) 是死循环 B) 循环执行三次 C) 循环执行一次 D) 有语法错误
While (i<=100) {sum+=i; i++;} printf(“%d\n”, sum); }
Begin
sum=0 i=1
F i<=100 T
sum=sum+i
i= i+1
输出sum
End
EXAMPLE[6-2]:
main() { int n=0;
while (n<3)
{ printf(“%d,”, n ); n++;
关系、逻辑 赋值表达式
语句格式: while(表达式) { statements; }
body of loop
语句功能: 当表达式的值为非零时,重复statements。
? 请用while实现 sum=1+2+3+4+……+100
while (表达式) {… …}
main( ) { int sum=0, i=1;
book12pen5%*#( )[ ]& 字母: 7
数字: 3 字符: 8
6.3 do-while 语句
body of loop
语句格式: do { statements; }
while(表达式);
语句功能: 当表达式的值为非零时,重复statements 。
EXAMPLE[6-3]:
1+2+3+4+5+ … …+100
}
Begin sum=0 i=1
sum=sum+i
i= i+1
T i<=100 F
输出sum
End
EXERCISES[6-1]:
从键盘输入100个有符号整数,请 分别统计其中正整数和负整数的个数。
Begin
i=0 p=0 n=0
1 输入 x
F
T
X>0
X<0
p++
n++
i++
1、设计算法
1
i<100
? 输出所有2~10000的素数.
循环结构程序设计
循环是在循环条件为真时计算机反复执行的一组指令 (循环体)。
循环控制通常有两种方式: ◆计数控制 事先能够准确知道循环次数时用之
用专门的循环变量来计算循环的次数,循环变量的值在每次 执行完循环体各语句后递增,达到预定循环次数时则终止循环, 继续执行循环结构后的语句。
? if … goto ? while ? do … while ? for
其中if … goto是通过编程技巧(if语句和goto语句 组合)构成循环功能。而且goto语句将影响程序流程的模 块化,使程序可读性变差,所以结构化程序设计主张限制 goto语句的使用。
其他三种语句是C语言提供的循环结构专用语句。
◆标记控制 事先不知道准确的循环次数时用之
由专门的标记变量控制循环是否继续进行。当标记变量的值 达到指定的标记值时,循环终止,继续执行循环结构后的语句。
实现循环结构的语句
实现循环结构的语句
if/goto while
do/while for(……)
break continue
C语言中可用以下语句构成循环:
第6 章
循环是计算机解题的一个重要特征。由于计算机运 算速度快,最适宜做重复性的工作。当我们在进行程序 设计时,总是要把复杂的不易理解的求解过程转换为容 易理解的操作的多次重复,从而降低了问题的复杂度, 同时也减少程序书写及输入的工作量。
? sum=1+2+3+4+……+100 ? 输出如下:
******** ******** ********
F 输出p
n
End
2、实现算法
main( ) { Int p,n,i, x;
p=n=i=0; bb: scanf(“%d”, &x);
if (x>0) p++; else If (x<0) n++;
i++;
if (i<100)
goto bb;
printf(“%d,%d\n”,p,n); }
wenku.baidu.com
5.2 while 语句
x
s
01
01
s=s+(++x);
1
HOMEWORK[6-1]:
从键盘输入100条整型数据,请找出 其中最大的数,并指出这个最大的数是 从键盘第几次输入的。
要求:1、用N-S图设计算法; 2、用C语言实现算法。
HOMEWORK[6-2]:
请分别统计在输入的字符串中 字母、数字和其它字符的个数。
要求:1、用N-S图设计算法; 2、用C语言实现算法。
main( ) { int x; xx==-10; do { x=x*x; } while( !x ); }
} printf(“%d\n”, n); }
n
--03210312
3, 2, 1, -3,-2,-1,
0, 1,2, 3
main( ) { int n=3;
while (n) printf(“%d,”n, --);
n=-3; printf(“\n”);
while (n) printf(“%d,”n,++);
设:i 计数器:i=i+1
sum 为累加器:sum=sum+i
Begin sum=0 i=1
sum=sum+i
i= i+1
T i<=100 F
输出sum
End
语句标号:语句;
…… if (表达式) goto 语句标号;
main( ) { int sum=0, i=1;
aa: ssuumm=+s=uim; +i; ii=+i+;1; if (i<=100) goto aa; printf(“%d\n”, sum);
}
EXERCISES[6-2]:
main( ) { int a=1,b=2,c=2,t=0; while (a<b) { t=a; a=b; b=t; c++; } printf( “%d,%d,%d”,a,b,c ) ; }
a
b
c
t
12
21
23
01
EXERCISES[6-3]:
!x
main() { int x=0, s=0; while(!x!=0) s+=++x; printf(“%d\n”, s); }
相关文档
最新文档