最新C语言循环语句汇总

  • 格式:ppt
  • 大小:593.00 KB
  • 文档页数:7

下载文档原格式

  / 7
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
if(m%i==0) break; if (i>=k+1)
printf("%d is a prime number\n",m); else
printf("%d is not a prime number\n",m); }
2020/8/14
27
此课件下载可自行编辑修改,仅供参考! 感谢您的支持,我们努力做得更好!谢谢
scanf("%d",&i); while(i<=10) { sum+=i;
i++; } printf("%d",sum); }
2020/8/14
10
5.4 for循环
❖一般形式:
for([表达式1] ;[ 表达式2] 循环体语句;
;[
表达式3])
❖执行流程:
表达式1
假(0) 表达式2
真(非0)
循环体语句
2020/8/14
15
程序实现
#include <stdio.h>
1、定ma义in3()个变量。用双for循环实现: i{nt x,y,z; foinrt(xx,=y,0z;;x<=100;x++)
forf(ox=r(0y;=x<0=;y10<0=;1x+0+0);y++)
forz(y==100;y0<-x=1-y0;0;y++) 2、利用{z=if1语00句-x-判y;断x,y,z是否5满*x+足3为*y条什+z么件/3不=:=是100呢
printf("r=%d,area=%.2f\n",r,area);
}
}
2020/8/14
23
2、continue语句
❖功能:结束本次循环,跳过循环体中尚未执行的 for 语句,进行下一次是否执行循环体的判断
❖仅用于循环语句中
表达式1
while
假(0) 表达式2
真(非0) …… continue; …...
假(0) 表达式
真(非0) 循环体
循环体语句
真(非0) 表达式 假(0)
2020/8/14
8
100
∑n 例: 用do~while循环求
n=1
#include <stdio.h> main() { int i,sum=0;
i=1; do { sum+=i;
i++; }while(i<=100); printf("%d",sum); }
{z=100-x-y;
if(15*x+9*y+z==300&&z>=0)
printf(“%,d%d,%d\n”,x,y,z);
}
}
2020/8/14
17
#include <stdio.h> main() { int x,y,z; for(x=0;x<=100;x++) for(y=0;y<=100;y++)
真(非0) …… break; …...
表达式3
2020/8/14
22
break举例:输出圆面积,面积大于100时停止
#define PI 3.14159
main()
{
int r;
float area;
for(r=1;r<=10;r++)
{ area=PI*r*r;
if(area>100)
break;
printf(“%d”,n);
}
}
2020/8/14
25
例 判断m是否素数
读入m k=m i=2
当ik
真 m被i整除 假 用break 结束循环
i=i+1

ik+1

输出:m”是素数”输出:m”不是素数”
2020/8/14
26
#include "math.h" main() {
int m,i,k; printf("input a number:"); scanf("%d",&m); k=sqrt(m); for (i=2;i<=k;i++)
2020/8/14
4
100
∑n 例: 用while循环求
n=1
循环初值 循环变量增值
#include <stdio.h> main() { int i,sum=0;
i=1; while(i<=100) { sum=sum+i;
i++; } printf("%d",sum); }
循环条件
循环终值 循环体语句
{ inti,sfuomr语=0句; 可以转换成while结构
for(i=1;i<=100;i++)
表达式1;
sum+=i;
while(表达式2)
printf("%d",sum);
{
}
循环体语句;
表达式3;
2020/8/14
}
12
5.5 循环嵌套
循环的嵌套
❖三种循环可互相嵌套,层数不限
❖外层循环可包含两个以上内循环,但不能相互交叉
x+y+z=100 ……① 5x+3y+z/3=100……②
三个未知数, 两个方程
问题解决之道:穷举法 穷举解决之道:循环
2020/8/14
14
x+y+z=100 ……① 5x+3y+z/3=100……②
算法如下: 假设x、y已知,由方程①可以得出z=100-x-y 由条件可知x和y的值有限制,只可能在0~100之间。需要用 二重循环实现。每个x和y的组合都对应一个z的值,如果x, y和z的值满足方程②,即为所求结果
if(15*x+9*y+z==300)
if(15*x+9*y+z==300)
printf(“%,d%d,%d\n”,x,y,z);
}
2020/8/14
16
}
#include <stdio.h>
main()
{
int x,y,z;
for(x=0;x<=100;x++)
for(y=0;y<=100;y++)
for(z=0;z<=100;z++) if(15*x+9*y+z==300&&x+y+z==100) printf(“%,d%d,%d\n”,x,y,z);
} 2020/8/14
18
5.6 几种循环的比较
100
求 ∑n
n=1
#include <stdio.h> main() { int i,sum=0;
• 说明: – break只能终止并跳出最近一层的结构 – break不能用于循环语句和switch语句 之外的任何其它语句之中
2020/8/14
21
while
假(0) 表达式
真(非0) …… break; ……
do
……
break;
…...
真(非0)
while 表达式
假(0)
for
表达式1 表达式2 假(0)
表达式3
2020/8/14
11
❖for语句最简单应用形式:
for(循环变量赋初值;循环条件;循环变量增值)
{
循环体语句;
}
例❖用说fo明r循:环求∑n
for语句中表达式1, 表达式2 ,表达式3 类型任 #inclu意de,<s都td可io.省h>略,但分号;不可省
main()无限循环: for(;;)
2020/8/14
9
例 while和do~while比较
#include <stdio.h> main() { int i,sum=0;
scanf("%d",&i); do { sum+=i;
i++; }while(i<=10); printf("%d",sum); }
# include <stdio.h> main() { int i,sum=0;
…...
…...
…….
……
}
}while( );
}
while()
{ ……
}
…...
2020/8/14
}
13
例: 我国古代数学家张丘建在《算经》中出了一道题“鸡翁一, 值钱五;鸡母一,值钱三;鸡雏三,值钱一。百钱买百鸡, 问鸡翁、鸡母、鸡雏各几何?”
解题思路:
利用以前学过的数学知识列方程。 假设鸡翁数为x,鸡母数为y,鸡雏数为z。列方程为:
3、 while和do-while循环的循环变量初值应在 while和do-while循环之前完成。
4、三种循环都可以用break跳出循环,用 continue 结束本次循环。
2020/8/14
20
5.7 break语句和continue语句
1、break语句
• 功能:在循环语句和switch语句中,终止并 跳出循环体或开关体
2020/8/14
5
例: 显示1~10的平方
#include <stdio.h> main() { int i=1;
while(i<=10) { printf("%d*%d=%d\n",i,i,i*i);
i++; } }
运行结果: 1*1=1 2*2=4 3*3=9 4*4=16 5*5=25 6*6=36 7*7=49 8*8=64 9*9=81 10*10=100
C语言循环语句
2、goto语句 含义 : 无条件转移
goto语句一般格式:
2020/8/14
goto 语句标号; ….….. 标号:语句;
说明: 不能用整数作标号 只能出现在goto所在函数内,且唯一 只能加在可执行语句前面 限制使用goto语句
2
5.2 while语句
❖一般形式: while(表达式) 循环体语句;
#include <stdio.h> main() { int i,sum=0;
for(i=1;i<=100;i++) sum+=i;
printf("%d",sum); }
2020/8/14
19
循环比较总结
Biblioteka Baidu
1、几种循环通常情况下可以互相替代
2、while和do-while循环,只在while后面指定 循环条件,在循环体内应包含使循环趋于结束 的语句;for循环比较灵活,循环趋于结束语句 可以用在表达式3,也可以在循环体语句中完 成。
do
……
continue;
…...
真(非0)
while 表达式
表达式 假(0) 真(非0)
…… continue;
……
表达式3
假(0)
2020/8/14
24
例:把100~200之间的不能被3整除的数输出
main()
{
int n;
for(n=100;n<=200;n++)
{if(n%3==0)
continue;
2020/8/14
6
5.3 Do-while语句
❖一般形式: do 循环体语句;
while(表达式);
❖执行流程:
循环体语句
真(非0)
表达式 假(0)
2020/8/14
7
❖特点:先执行循环体,后判断表达式 ❖说明:
至少执行一次循环体 do~while可转化成while结构
赋初值
While循环
Do-While循环
❖流程图:
假(0) 表达式
真(非0) 循环体语句
2020/8/14
3
❖特点:先判断表达式,后执行循环体 ❖几点说明:
循环体有可能一次也不执行 循环体可为任意类型语句 下列情况,退出while循环
条件表达式不成立(为零) 循环体内遇break,return,goto 无限循环: while(1)
循环体语句;
i=1; do { sum+=i;
i++; }while(i<=100); printf("%d",sum); }
#include <stdio.h> main() { int i,sum=0;
i=1; while(i<=100) { sum=sum+i;
i++; } printf("%d",sum); }
❖嵌套循环的执行流程
❖嵌套循环的跳转
(1) while() 禁止(:2) do
(3) while()
{
…… while() { ……
12..从跳{ 外 入…d{层同o……跳层…入的内另层一循{ 环…d{o………
}
3.向上}跳wh转ile( );
}while( );
(4) for( ; ;) { …… do { …… }while();