关于C语言循环条件语句详细讲解
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
main() { int i,sum=0; scanf("%d",&i); while(i<=10) { sum+=i; i++; } printf("%d",sum); }
练习题:1 分别用while和do~while实现 输入一数,然后倒序输出!
for语句
一般形式:
for([expr1] ;[ expr2] ;[ expr3]) 循环体语句;
main() { int i,j,sum; for(i=3;i>=1;i--) { sum=0; for(j=1;j<=i;j++) sum+=i*j; } printf(“%d\n”,sum); }
循环的嵌套
三种循环可互相嵌套,层数不限 外层循环可包含两个以上内循环,但不能相互交叉 嵌套循环的执行流程 嵌套循环的跳转
C语言程序设计
第三讲
• 循环型程序设计
– 概述
C语言可实现循环的语句: – 用goto 和 if 构成循环 – while 语句 – do ~ while 语句 – for 语句 • goto语句一般格式:
– goto语句及用goto构成循环
goto 语句标号; ….….. 标号:语句;
功能:无条件转移语句 说明: 不能用整数作标号 只能出现在goto所在函数内,且唯一 只能加在可执行语句前面 限制使用goto语句
#include <stdio.h> main() { int i, j,sum=0; for(i=1;i<5;i++) for(j=1;j<4;j++) sum++; printf(“sum=%d\n",sum); }
练习题:2.
金字塔形图形输出。
• 4.6 辅助控制语句
– break语句
• 功能:在循环语句和switch语句中,终止并跳出 循环体或开关体 • 说明: – break只能终止并跳出最近一层的结构 – break不能用于循环语句和switch语句之外 的任何其它语句之中
一般形式: do 循环体语句; while(表达式); 执行流程:
do
循环体 真(非0)
while expr 假(0)
特点:先执行循环体,后判断表达式 说明: 至少执行一次循环体 do~while可转化成while结构
循环体
While循环
假(0) expr 真(非0) 循环体
例 用do~while循环求
思考题:输出100~300之间的素数、素数个数、素 数之和、素数的平均数。
4.6.2 continue语句
功能:结束本次循环,跳过循环体中尚未执行的 语句,进行下一次是否执行循环体的判断 仅用于循环语句中
例 04/4/25 以下程序的运行结果是___.
#include <stdio.h> main() { int i,n=0; for(i=2;i<5;i++) { do {if(x%3) continue; n++; }while(!i); n++; } printf(“n=%d\n",n); }
break; …...
const n 语句组n
break;
default 语句组
break;
…...
expr3
例 2.以下程序的运行结果是_____.
#include <stdio.h> main() { int x=15; while(Baidu Nhomakorabea>10&& x<50) { if(x/3) {x++,break;} x+=2;; } printf("%d\n",x); }
#include <stdio.h> main() { int y=10; while(y--); printf(“y=%d\n",y); }
#include <stdio.h> main() { char c; while((c=getchar())!=„?‟) putchar(--c); }
do~while语句
禁止: 从外层跳入内层 跳入同层的另一循环 向上跳转 (3) while() (2) do (1) while() { …… { …… { …… do do while() { …… { …… { …… }while( ); }while( ); } ……. …... …... } }while( ); } (4) for( ; ;) { …… do { …… }while(); …… while() { …… } …... }
例 2.以下程序的运行结果是_____.
#include <stdio.h> main() { int i,n=0; i=0; do { i++; ++i; }while(n!=0); printf("%d",i); }
例 while和do~while比较
#include <stdio.h> main() { int i,sum=0; scanf("%d",&i); do { sum+=i; i++; }while(i<=10); printf("%d",sum); }
循环体
while语句
一般形式: while(表达式) 循环体语句; 执行流程:
while 假(0) expr 真(非0) 循环体
特点:先判断表达式,后执行循环体 说明: While是C语言的关键字; 圆括号内的表达式为任意合法的表达式; 循环体语句只有一个时可不加花括号;多时必须加; 循环体有可能一次也不执行 循环体可为任意类型语句 下列情况,退出while循环 条件表达式不成立(为零) 循环体内遇break,return,goto 无限循环: while(1) 循环体;
例 2.以下程序的运行结果是_____.
有以下程序(08年9月27题) #iinclude <stdio.h> main() { int i,j; for(i=3; i>=1; i--) { for (j=1;j<=2;j++) printf(“%d”,i+j); printf(“\n”); } } 程序的运行结果是 ( ) 2 3 4 B) 4 3 2 C) 2 3 D) 4 5 3 4 5 5 4 3 3 4 3 4 4 5 2 3
例 (08年9月29题) 有以下程序
#include <stdio.h> main() { int i=5; do { if (i%3= =1) if (i%5= =2) {printf(“*%d”,i); break; } i++; }while(i!=0); printf(“\n”); } 程序的运行结果是 A)*7 B)*3*5 C) *5 D)*2*6
{ int i,sum=0; for(i=1;i<=100;i++) sum+=i; printf("%d",sum); }
循环体语句; expr3; }
例:#include<stdio.h> main( ) { int i=0; for(i=0;i<3;i++) switch(i) { case 0:printf(“%d”,i); case 2:printf(“%d”,i); default:printf(“%d”,i); 例: (08年9月8题填空) 以下程序的输出结果【8】。. } #include <stdio.h> 运行结果:
while do 假(0) expr 真(非0) …… break; …… 真(非0) …… break; …... while expr
假(0)
for
expr1 switch 假(0)
expr2
真(非0) …… break; expr case
const 1 语句组1
break;
const 2 语句组2
for
expr1 假(0) expr2 真(非0) 循环体 expr3
执行流程:
for语句一般应用形式: for(循环变量赋初值;循环条件;循环变量增值) { 循环体语句; } 说明: 例 用for循环求 for语句中expr1, expr2 ,expr3 类型任意,都可省略,但分 号;不可省 expr1; #include <stdio.h> 无限循环: for(;;) while(expr2) main() for语句可以转换成while结构 {
例 用if 和goto语句构成循环,求
#include <stdio.h> main() { int i,sum=0; 循环初值 i=1; loop: if(i<=100) { sum+=i; 循环变量增值 i++; goto loop; } printf("%d",sum); }
循环条件 sum=0+1 sum==1+2=3 sum=3+3=6 sum=6+4 …… sum=4950+100=5050 循环终值
例1. 以下程序的运行结果是_____.
循环初值
循环变量增值
#include <stdio.h> main() { int i,sum=1; i=1; while(i<=5) { sum=sum*i; i++; } printf("%d",sum); }
循环条件
循环终值
循环体
例.以下程序的运行结果是_____.