程序的控制结构总结

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

2018/11/7
合法的嵌套循环
15
外层循环 内层循环
内层循环
合法的嵌套循环
内层循环
2018/11/7
现场编程完成

16
编程输出下面下三角格式
1 1 2 3 4 4 6 8 9 12 16 20 25 24 30 36 42 49 40 48 56 64 45 54 63 72 81 2 3 4 5 6 7 8 9
5 10 15 6 12 18 7 14
21 28 35
8 16 24 32 9 18 27 36
2018/11/7
#include <stdio.h> main() { int m, n; for(m=1; m<10; m++) printf("%4d", m); /*打印表头*/ printf("\n"); for(m=1; m<10; m++) printf(" -"); printf("\n"); for(m=1; m<10; m++) { for(n=1; n<=m; n++) { printf("%4d", m*n); } printf("\n"); } 2018/11/7 }
补充2:列出一道一位数乘法题(数值通过随机函数产生), 由用户回答,程序告诉回答得正确与否,回答错误最多三次. #include<stdio.h> #include<stdlib.h> #include<time.h> main() {int num1,num2,result,answer,times=1; srand(unsigned)time(Null)); /*初始化随机函数*/ num1=rand()%10; /*产生一个0~9的随机数*/ 程序运行 num2=rand()%10; /*同上*/ 3*6=?24 result=num1*num2; answer is wrong do 3*6=?18 {printf(“%d*%d=?”,num1,num2); scanf(“%d”,&answer); answer is ringht if(answer==result) printf(“answer is right\n”); else printf(“answer is wrong\n”); }while((answer!=result)&&(times++!=3)); }
2018/11/7
循环——while,for
while (表达式) { 语句; } for (表达式1; 表达式2; 表达式3) { 语句; }

7
2018/11/7
while
while (表达式) { 语句; } 只要表达式的值为非0,就重复执行语句,直 到表达式值为0时止

8
2018/11/7
构成程序的三种基本结构

2


顺序结构 选择结构 循环结构 已经证明,任何程序均可只用这三种结构综合描述 只用这三种结构编制的程序,叫结构化程序 程序必须符合结构化规则
2018/11/7
结构化程序设计的核心思想

3
采用顺序、选择和循环三种基本结构作为程序设计 的基本单元 – 只有一个入口; – 只有一个出口; – 无死语句,即不存在永远都执行不到的语句; – 无死循环,即不存在永远都执行不完的循环。 采用“自顶向下、逐步求精”和模块化的方法进行 结构化程序设计

9
注意

10


在for和while语句之后一般没有分号 有分号表示循环体就是分号之前的内容(空循环体) while (i < 100); i++; for (i = 0; i < 100; i++); printf(“%d”, i); /*结果是100*/ for通常有一个循环变量控制循环的次数,不要在循 环体内改变这个变量
2018/11/7
else-if

5

if的一种扩展形式 if (表达式) 语句1; else if (表达式) 语句2; else if (表达式) 语句3; ………… else 语句4; 语句5; else部分可以没有
2018/11/7
switch

6

多路选择 switch (表达式) { case 常数1: 语句序列1; case 常数2: 语句序列2; ………… default: 语句序列3; } default可以没有,但最好不省略 不要忘记break
for
for (表达式1; 表达式2; 表达式3) { 语句; } 首先执行表达式1。如果表达式2的值为非0,就重复 执行语句和表达式3,直到表达式2的值为0时止 相当于: 表达式1; while (表达式2) { 语句; 表达式3; } 表达式1和表达式3可以没有或者是用逗号分隔的多个 表达式的组合。但最好不要有太多的表达式组合 2018/11/7
2018/11/7
do-while

11
do {
语句; }while (表达式); 首先执行语句,然后判断表达式的值。如果表 达式为0,继续向下执行,否则,再次执行语 句,再次判断表达式的值 语句会被至少执行一次
2018/11/7
选择三种循环的一般原则
如果循环次数已知,用for 如果循环次数未知,用while 如果循环体至少要执行一次,用do-while 这只是“一般”原则,不是“原则”

12
2018/11/7
死循环

13
永远不会退出的循环为死循环 – for (;;)
{} – while (1) {}Βιβλιοθήκη Baidu– do { }while (1);

一般情况下,要极力避免死循环 – 绝大多数程序不需要死循环。如果出现,往往都是bug – 时间过长的循环会造成“假死”效果,也要考虑解决
2018/11/7
2018/11/7
if-else

4
选择结构的一种最常用形式 if (表达式) 语句1; else 语句2; 语句3; – 表达式值非0时,执行语句1,然后语句3
表达式值为0时,执行语句2,然后语句3


else部分可以没有。 if (表达式) 语句1; 语句3; – 当表达式值为0时,直接执行语句3 if-else嵌套使用时,注意else和谁配对的问题
14
使用嵌套的循环体时,应注意以下问题
在嵌套的各层循环体中,使用复合语句(即用一对 大花括号将循环体语句括起来)保证逻辑上的正确 性 内层和外层循环控制变量不应同名,以免造成混乱 嵌套的循环最好采用右缩进格式书写,以保证层次 的清晰性 循环嵌套不能交叉,即在一个循环体内必须完整的 包含着另一个循环
相关文档
最新文档