15 循环基本语法_for_continue_break

发布时间:2021-09-24 11:14:12

回顾
while (表达式)
{ 循环体; } do { 循环体; } while (表达式); int s=0,n=1; do { s+=n; n++; }while(n<=100);

int s=0,n=1;
while(n<=100) { s+=n; n++; }

例1:输入任意一个整数,求数字8出现的次数。例如, 输入:3280,则输出:含1个8 输入:878,则输出:含2个8

1

用for语句实现循环
?

语句一般格式

循环控制条件

for (表达式1;表达式2;表达式3) 语句
循环初始条件
?功能:
–计算表达式1的值,再判断表达式2,如果其

循环体

值为非0(逻辑真),则执行内嵌语句(循环体), 并计算表达式3;之后再去判断表达式2,一直 到其值为0时结束循环,执行后续语句。
2

for语句的算法及应用
流程图 计算表达式1
表达式2 为真?

N-S结构图 for (表达式1;表达式2;表达式3) N 语句

Y 语句 计算表达式3

用for语句 求100个自然数的和

例如: 可部分或全部省略, void main( )但“;”不可省略 { int n,sum; sum=0; for ( n=1; n<=100; n++) sum=sum+n; printf("sum=%d\n",sum); }
3

省略for语句的表达式
⑴ 表达式1、2、3全省略,即: for ( ; ; ) 就等同于:while (1),会无限循环(死循环) ⑵ 省略表达式1和表达式3,即: for(;表达式2;) 就等同于:while( 表达式2 ) ⑶ 省略表达式2,即: for(表达式1; ;表达式3) 就等同于:表达式1; while(1){…表达式3;}

注意:在省略某个表达式时,应在适当位置进行循 环控制的必要操作,以保证循环的正确执行
4

例如:
⑴ i=1; for ( ; i<=100; i++) sum+=i; ⑵ for (i=1; ; i++) { … if(i>100)… …} ⑶ for (i=1; i<=100; ) {…i++; … } ⑷ i=1; for ( ; ; ) { … if(i>100) … i++; … } (5) for (sum=0,n=1; n<=100; sum+=n,n++) ; //注意:循环体是空语句的情况!
5

for语句的简单应用
【例2】利用for循环输出10个$符。
设置: ? 计数器c =0; ? 每次循环输出一个$符后,令c = c+1; ? 共循环10次,循环次数确定,适合用for实现。

6

【例3】按每行输出5个数的形式输出Fibonacci数列 的前20项 。 思路:Fibonacci数列的前几项是:1、1、2、3、5、 8、13、21、34、…。此数列的变化规律是: f n=
? ? ?

1 (n=1) 1 (n=2) fn-1+fn-2 (n>2)

设 变 量 f1 、 f2 和 f3 , 并 为 f1 和 f2 赋 初 值 1 , 令 f3=f1+f2得到第3项; 将f1←f2, f2←f3,再求f3=f1+f2得到第4项; 依此类推求第5项、第6项…
7

算法和程序 f1=1,f2=1并输出 for (i=3; i<=20; i++) f3=f2+f1 f1=f2,f2=f3

输出f3
输出5个数 T 换行 F

#include<stdio.h> #define N 20 void main( ) { int i,f1,f2,f3; f1=f2=1; printf("\n%8d%8d",f1,f2); for (i=3; i<=N; i++) { f3=f1+f2; f1=f2; f2=f3; printf("%8d",f3); if (i%5==0) printf("\n"); } }
8

熟悉几个循环语句
?
? ? ? ?

?

while (!x) x++; 当 x==0 时,执行循环体x++; n=0;while ((c=getchar( )) != '\n') n=n+1; n 为计数器,作用是统计输入的一行字符的个数 n=0;while (n++<=1) ; printf("%d\n",n); 循环体是空语句,退出循环后输出n的值 do x*=-3; while(x>5); 先执行循环体x*=-3,再判断条件(x>5) for (n=0; n<26; n++) printf("%c ", n+'A'); 作用是输出26个大写字母 for (sum=0, i=1; i<=100; sum=sum+i, i+=2) ; 作用是计算100以内的奇数和 9

break语句和continue语句
1、 break语句 形式: break; 作用:可使流程从switch结构或是循环体内跳出。 注意:break语句不能用于循环和switch之外的任 何语句中! 2、 continue语句 形式: continue;

作用: 结束本次循环,即跳过循环体中下面尚未执 行的语句,接着进行下一次是否执行循环的判定。
10

循环中break的应用
? 功能:
– 利用break语句能够强迫终止本层循环,转到 后续语句执行。
while语句
表达式?
Y N

do-while语句

for语句 计算表达式1
N

… break; …

… break; …
表达式?
Y N

表达式2?
Y

… break; …

计算表达式3 后续语句
11

后续语句

后续语句

continue语句及应用
? 功能:
– 中断循环体的本次执行(即跳过循环体中尚 未执行的语句),立即开始执行下一次循环。
while语句
表达式?
Y N

do-while语句

for语句 计算表达式1
N

… continue; …

… continue; …
表达式?
Y N

表达式2?

… continue; … 计算表达式3 后续语句
12

Y

后续语句

后续语句

continue与break的区别
continue 语句只结束本次循环,而非终止整个循 环语句的执行,能帮助设置在某种条件下跳过循环体 中部分语句的执行。而 break 语句则是结束整个循环 语句,不再判断执行循环的条件是否成立。
/* 计算半径在 1 到 10 之间的圆 的面积,直到面积大于 100 为 止*/ for (r=1;r<=10;r++) { area=PI*r*r; if (area>100) break ; printf(“%f”,area); } /*把1~100之间的不能被3整除 的数输出。*/

for (n=1;n<=100;n++) { if (n%3==0) continue ; printf(“%d ”,n); }
13

/*计算1到10之间的奇数之和*/ #include <stdio.h> void main() { int i,s=0; for (i=1;i<=10;i++) { if (i%2==0) continue; s+=i; } printf("%d\n",s); } #include <stdio.h> void main() { int i,s=0; for (i=1; i<=10 ;i+=2) { if (i>10) break; s+=i; } printf("%d\n",s); }

14

阅读程序
void main() { int n=9; while(n>6) { n--; printf("%d",n); } }
1.有以下程序段: int x=3; do { printf("%d",x-=2); } while(!(--x)); 输出结果为: A) 1 B) 3 0 C) 1 -2 D)死循环
15

阅读程序
void main() { int a=0,i; for(i=4;i>=1;i--) switch(i) { case 1: case 2: a+=1;break; case 3: a+=2;break; default: if(i%2) a+=3; } printf(“a=%d\n”,a);
}

16

阅读程序
void main() { int i,j,x=0; for(i=0;i<2;i++) { x++; for(j=0;j<=3;j++) { if(j%2) continue; x++; } x++; } printf("x=%d",x); } //输出x的值: (1) _____

17

循环的嵌套
?如果循环语句的循环体内又包含了另一条循环语

句,则称为循环的嵌套 ?while、do-while、for循环语句可以并列,也可以 相互嵌套。 ?多重循环程序执行时,外层循环的循环体每执行 一次,内层循环被完整地执行一次(即其循环体 可能被执行多次)。 外循环语句 ?例如: for(a=0;a<3;a++)

{

内循环语句

for (b=0;b<3;b++) printf(“$”); printf(“\n”);

}

18

作业
实训5-11:输入任意个整数,求各个位数字之和及位数。 (要求用for语句实现)

小小游戏:
取火柴游戏:要求人和电脑轮流取火柴,每次取走 1~4根,不可多取,不可不取。谁拿到最后一根火柴谁 输。 假设,现有21根火柴,人先取,请构造算法,使得电脑 常胜!

19


相关文档

  • _For循环结构break_continue语句(9)
  • 17.控制循环-break和continue
  • 第6章_循环控*峁(2 多重循环和break、continue)
  • for循环的简介及break和continue的区别
  • C语言循环结构-break、continue语句
  • 第11讲 break语句和continue语句 循环结构程序举例
  • c53循环结构break与continue
  • Ch5(for break continue)
  • 第4章_程序的控*峁(多重循环和break、continue)
  • 猜你喜欢

  • 向后飞翔
  • 辽宁省建筑业内资企业(按登记注册类型)数量情况数据专题报告2019版
  • [转载]基于数据挖掘技术入侵检测系统研究
  • 在软件开发的意义论文
  • 高中数学 初高中衔接教材 第22课时 函数复*学案(无答案)苏教版
  • 我到底该怎么做?
  • 服饰中有种材料叫PVC那是什么材料呢
  • 出纳员工作总结4篇
  • 【K12学*】关于我在读书中成长的小学六年级作文
  • 九年级暑假日记范文:狂热的暑假600字
  • 保持共产党员先进性教育活动心得体会--提高素质 开拓创新 把保持党员先进性落实到实际工作中去
  • 人教A版高中数学必修五第三章3.3.1.docx
  • 最新【名师金典】版高考数学大一轮复*+课时限时检测*面向量的基本概念及线性运算优秀名师资料
  • 人教版四年级语文上册 12小木偶的故事(教学反思优质参考)小木偶的故事 教案
  • 安全用电常识-PPT课件
  • 2020年广东省东莞市中考化学复习题 (89)
  • 【K12学*】四年级上册《Storytime》导学案苏教版
  • 自动控制原理(胡寿松)50经典自动控制原理
  • 2015年少女时代中国巡回演唱会招商方案讲义
  • 政府采购监督机制存在的问题与改进建议
  • 感恩父母蓝金
  • 部编版初中语文八年级上册《16大自然的语言》PPT课件 (9)
  • 2012年7月护士考试题A卷
  • 移动端多人视频通话软件开发(二)-- 架构
  • 文化经纪人的规范管理
  • 电子版产品代理合同模板
  • 心系群众,增强教务管理的服务意识
  • 2019年贵阳项目前期市场调研报告2
  • 2019高三地理名校试题汇编1-专项4地表形态的塑造(学生版)
  • 001-统表2_建筑给水排水及采暖分项工程质量验收记录
  • 中央电大2010-2011学年度第一学期期末考试园艺专业农科基础化学试题2011年1月
  • 高考作文如何快速选材ppt
  • 人教版初中英语全5册英语单词汇总-超全版
  • 木塑铝合金复合材料项目可行性研究报告立项申请报告范文
  • 桥梁桩基冲击钻孔施工时水下混凝土灌注要求
  • Are invasive species the drivers of ecological change?
  • 燃气调压器项目投资意向书
  • 2020年学生会宣传部工作总结和工作计划
  • 2019年八年级数学下册 12.2 二次根式的乘除学案1(新版)苏科版.doc
  • 乡镇卫生整顿工作方案
  • 好听的电视台背景音乐总汇
  • 中小学公民教育现状与对策研究
  • 电脑版