Presentation is loading. Please wait.

Presentation is loading. Please wait.

第3章 C语言的基本语句 和程序结构设计.

Similar presentations


Presentation on theme: "第3章 C语言的基本语句 和程序结构设计."— Presentation transcript:

1 第3章 C语言的基本语句 和程序结构设计

2 目 录 基本语句 关系运算符和关系表达式 逻辑运算符和逻辑表达式 分支程序设计 循环程序设计
目 录 基本语句 关系运算符和关系表达式 逻辑运算符和逻辑表达式 分支程序设计 循环程序设计 C语言程序设计 - 第3章 C语言的基本语句和程序结构设计

3 基本语句 (Statements) 控制语句 表达式语句 函数调用语句 空语句 复合语句
C语言程序设计 - 第3章 C语言的基本语句和程序结构设计

4 控制语句 完成一定的控制功能 C语言的9种控制语句 if-else while for continue do-while switch
return for do-while break goto C语言程序设计 - 第3章 C语言的基本语句和程序结构设计

5 表达式语句 形式 举例 expression; 表达式最后加一个分号 a=3; /* 赋值语句 */
z=x*y, z++; /* 一条语句 */ x-y; /* 语句,但无实际意义 */ i++; /* 语句 */ i++ /* 表达式,不是语句 */ C语言程序设计 - 第3章 C语言的基本语句和程序结构设计

6 函数调用语句 形式 举例 function(arguments); 函数调用后加一个分号 函数调用语句可以看作一种表达式语句
printf("%d", i); getchar(); myfun(a, b); C语言程序设计 - 第3章 C语言的基本语句和程序结构设计

7 空语句 形式 用法 举例 ; 只有一个分号 作为转向点 作为循环语句中的循环体
for(i=1; i<=100; i++) sum+=i; for(i=1; i<=100; sum+=i++); C语言程序设计 - 第3章 C语言的基本语句和程序结构设计

8 复合语句 (块语句,Block) 形式 用法 {statements} 用{}把若干条语句组合成为一个复合语句
{}内可以没有任何语句,可以只有一条语句,也可以有多条语句 可以包括复合语句、空语句、控制语句等 用法 一个复合语句当作一条语句来使用 需要把多条语句放在只允许一条语句的场合 C语言程序设计 - 第3章 C语言的基本语句和程序结构设计

9 复合语句举例 int x, y, t; if (x > y) { /* 复合语句开始 */ t = x; x = y; y = t;
{ /* 复合语句开始 */ t = x; x = y; y = t; } /* 复合语句结束 */ printf("%d, %d", x, y); C语言程序设计 - 第3章 C语言的基本语句和程序结构设计

10 C语言语句使用说明 除复合语句外,语句都以分号;作为结束 语句书写格式比较自由,确定语句结束的唯一标准是分号(;)
注意区分表达式和表达式语句,它们的用法不同 举例,if((a=b)>0) t=a; 错例,if((a=b;)>0) t=a; 举例,if(x>y) {x--; y++;} 错例,if(x>y) {x--; y++} C语言程序设计 - 第3章 C语言的基本语句和程序结构设计

11 关系运算符 (Relational Operators)
名称 举例 优先级 (算术运算符) < 小于 i<100 <= 小于等于 a<=MAX > 大于 f>3.14 >= 大于等于 c>='a' == 等于 a==b != 不等于 x!=0 (赋值运算符) C语言程序设计 - 第3章 C语言的基本语句和程序结构设计

12 关系表达式 用关系运算符将两个表达式连接起来 注意区分等于(==)和赋值运算符(=) 关系表达式的值是逻辑值—“真”或“假”
a+b>c+d, (a=3)>x 注意区分等于(==)和赋值运算符(=) a=b, a==b 关系表达式的值是逻辑值—“真”或“假” C语言用整型表示逻辑值,“真”—1、“假”—0 举例, a=3, b=2, c=1; d=a>b; /* d=1 */ f=a>b>c; /* f=(a>b)>c=0 */ C语言程序设计 - 第3章 C语言的基本语句和程序结构设计

13 逻辑运算符 (Logical Operators)
名称 举例 优先级 逻辑非 !(a>b) (算术运算符) (关系运算符) && 逻辑与 (x>y)&&(y>z) || 逻辑或 (x>3)||(x<-3) (赋值运算符) C语言程序设计 - 第3章 C语言的基本语句和程序结构设计

14 逻辑运算规则 !a a&&b a||b 若a为“真”,!a为“假” 若a为“假”,!a为“真” 若a、b都为“真”,则a&&b为“真”
C语言程序设计 - 第3章 C语言的基本语句和程序结构设计

15 逻辑表达式 逻辑运算符把逻辑量或表达式连接起来 逻辑表达式的值是逻辑值 把一个表达式的值作为逻辑值使用
(y%4==0&&y%100!=0)||(y%400==0) 逻辑表达式的值是逻辑值 用整型表示逻辑值 “真”1,“假”0 把一个表达式的值作为逻辑值使用 非零“真”,零“假” 这里的非零与零,包括整型、浮点型等 C语言程序设计 - 第3章 C语言的基本语句和程序结构设计

16 逻辑表达式举例 int i=3; char c='a'; float f=0.0; i==0; !i; /* 两者逻辑值相同 */
c && !f; /* “真” */ i && 1.23 || f;/* “真” */ c && 4 && f; /* “假” */ C语言程序设计 - 第3章 C语言的基本语句和程序结构设计

17 逻辑表达式求值特点 逻辑表达式中的运算符,只有会影响表达式求值时,才会执行 De Morgan定理
a&&b&&c 若a为“假”,则不再判断b和c a||b||c 若a为“真”,则不再判断b和c 举例,(m=a>b)&&(n=c>d) De Morgan定理 !(a&&b) (!a)||(!b) !(a||b) (!a)&&(!b) !((a&&b)||c) (!a||!b)&&!c C语言程序设计 - 第3章 C语言的基本语句和程序结构设计

18 分支程序设计 if语句 条件运算符?: switch语句 分支程序设计举例 C语言程序设计 - 第3章 C语言的基本语句和程序结构设计

19 if语句的三种形式 if(expression) statement if(expression) statement1
else statement2 if(expression1) statement1 else if(expression2) statement2 else if(expression3) statement3 else if(expressionn-1) statementn-1 else statementn C语言程序设计 - 第3章 C语言的基本语句和程序结构设计

20 if语句的说明 无论哪种形式,一条if语句,包括else或else if子句,只算作一条语句
注意复合语句末尾没有分号 else子句都是可以没有的 C语言程序设计 - 第3章 C语言的基本语句和程序结构设计

21 if语句举例 if (x > y) /* y为x和y的较大值 */ y = x;
if (x > y) /* d为x和y之间的距离 */ d = x - y; else d = y - x; if (x > y); /* 合法,但没有实际操作 */ C语言程序设计 - 第3章 C语言的基本语句和程序结构设计

22 if语句的嵌套 if语句的各子句都可以又是if语句 应注意if-else的配对关系 else总是与其上面最近的if配对
if(exp1) if(exp1) if(exp2) {if(exp2) statement statement1} else else statement2 statement2 C语言程序设计 - 第3章 C语言的基本语句和程序结构设计

23 条件运算符 (Conditional Operator)
条件运算符?: 条件表达式 exp1?exp2:exp3 先判断exp1 若exp1为“真”,表达式的值为exp2的值 若exp1为“假”,表达式的值为exp3的值 举例, max = (x>y) ? x : y; 同: if(x>y) max = x; else max = y; C语言程序设计 - 第3章 C语言的基本语句和程序结构设计

24 switch语句 switch (expression) { case const-exp: statements ... ...
default: statements } C语言程序设计 - 第3章 C语言的基本语句和程序结构设计

25 switch语句的说明 先求switch后表达式的值,若此值与某个case后的常量表达式的值相等,则跳转到这个case后的语句;若没有相等的常量表达式,则跳转到default 跳转后程序一直往下执行,不会因为遇到另一个case而直接跳出switch 根据实际需要,可以没有default 若需要跳出switch,可使用break语句 case和default的顺序不影响执行结果 C语言程序设计 - 第3章 C语言的基本语句和程序结构设计

26 switch语句举例 (1) switch (day) { /* 打印星期的缩写 */
case 1: printf("Mon.\n"); break; case 2: printf("Tue.\n"); break; case 3: printf("Wed.\n"); break; case 4: printf("Thu.\n"); break; case 5: printf("Fri.\n"); break; case 6: printf("Sat.\n"); break; default:printf("Sun.\n"); } C语言程序设计 - 第3章 C语言的基本语句和程序结构设计

27 switch语句举例 (2) switch (deptno) { /* 根据系编号打印学院 */ case 15: case 16:
case 17: printf("商学院\n"); break; case 18: case 25: printf("人文学院\n"); break; case 7: printf("地空学院\n"); break; default: printf("其他学院\n"); } C语言程序设计 - 第3章 C语言的基本语句和程序结构设计

28 分支程序设计举例 求一元二次方程的根 当a=0时,不是一元二次方程 当a≠0时,方程的根为 当b2-4ac≥0,方程有两个实根
C语言程序设计 - 第3章 C语言的基本语句和程序结构设计

29 例1:求一元二次方程的根 C语言程序设计 - 第3章 C语言的基本语句和程序结构设计

30 循环程序设计 while语句 do-while语句 for语句 break和continue语句 循环程序设计举例
C语言程序设计 - 第3章 C语言的基本语句和程序结构设计

31 while语句 while (expression) statement while型循环 先判断表达式,后 执行语句 一般情况下,循环
中应含有能使循环 语句结束的操作 a statement expr. b C语言程序设计 - 第3章 C语言的基本语句和程序结构设计

32 while语句举例 int i, sum; i = 1; sum = 0; while(i<=100) {
} C语言程序设计 - 第3章 C语言的基本语句和程序结构设计

33 do-while语句 do statement while (expression); 类似于Until型循环 先执行一次循环体
语句,后判断表达 a statement expr. b C语言程序设计 - 第3章 C语言的基本语句和程序结构设计

34 do-while语句举例 int i, sum; i = 1; sum = 0; do { sum += i; i++;
C语言程序设计 - 第3章 C语言的基本语句和程序结构设计

35 do-while与Until型循环 do { sum+=i; i++; }while(i<=100); C语言形式 repeat {
}until(i>100); Until型循环 C语言程序设计 - 第3章 C语言的基本语句和程序结构设计

36 for语句 for (expr1; expr2; expr3) statement expr1; while (expr2) {
} C语言程序设计 - 第3章 C语言的基本语句和程序结构设计

37 for语句的说明 三个表达式的说明 三个表达式都可以省略 expr1:初始化 expr2:循环条件 expr3:一般是循环变量的改变
分隔表达式的分号不能省略 expr1省略,不进行初始化 expr2省略,认为循环条件永为“真” expr3省略,不在这里改变循环变量 C语言程序设计 - 第3章 C语言的基本语句和程序结构设计

38 for语句举例 int i, sum; for (i=1, sum=0; i<=100; i++) sum += i;
C语言程序设计 - 第3章 C语言的基本语句和程序结构设计

39 break语句 形式 说明 break; 跳出switch语句 跳出本层循环语句
C语言程序设计 - 第3章 C语言的基本语句和程序结构设计

40 continue语句 形式 说明 continue; 结束本次循环 跳过循环体中余下的其他语句,接着进行下一次循环的判定 只能用于循环语句中
C语言程序设计 - 第3章 C语言的基本语句和程序结构设计

41 break和continue语句 break语句 while(i<j){ ... if(i>100) break; }
跳出本层循环 while(i<j){ ... if(i>100) break; } continue语句 结束本次循环 while(i<j){ ... if(i>100) continue; } C语言程序设计 - 第3章 C语言的基本语句和程序结构设计

42 循环程序设计举例 求最大公约数和最小公倍数 C语言程序设计 - 第3章 C语言的基本语句和程序结构设计

43 例2:求最大公约数和最小公倍数 C语言程序设计 - 第3章 C语言的基本语句和程序结构设计

44 The End 结束 改编自白雪飞老师的 presentations, 感谢白老师!
C语言程序设计 - 第3章 C语言的基本语句和程序结构设计


Download ppt "第3章 C语言的基本语句 和程序结构设计."

Similar presentations


Ads by Google