谢丽聪老师C语言课件-5分支结构程序-2009

上传人:宝路 文档编号:47836611 上传时间:2018-07-05 格式:PPT 页数:34 大小:336.15KB
返回 下载 相关 举报
谢丽聪老师C语言课件-5分支结构程序-2009_第1页
第1页 / 共34页
谢丽聪老师C语言课件-5分支结构程序-2009_第2页
第2页 / 共34页
谢丽聪老师C语言课件-5分支结构程序-2009_第3页
第3页 / 共34页
谢丽聪老师C语言课件-5分支结构程序-2009_第4页
第4页 / 共34页
谢丽聪老师C语言课件-5分支结构程序-2009_第5页
第5页 / 共34页
点击查看更多>>
资源描述

《谢丽聪老师C语言课件-5分支结构程序-2009》由会员分享,可在线阅读,更多相关《谢丽聪老师C语言课件-5分支结构程序-2009(34页珍藏版)》请在金锄头文库上搜索。

1、第五章 分支结构程序设计5.1 5.1 关系运算符和表达式关系运算符和表达式 5.25.2 逻辑运算符和表达式逻辑运算符和表达式 5.3 5.3 逻辑表达式的跳跃逻辑表达式的跳跃 5.45.4 if if语句语句 5.55.5 switch switch语句语句5.1 5.1 关系表达式关系表达式由关系运算符、圆括号把两个表达式连接起 来的式子。 表示条件表示条件若所表示的条件成立、则其值为1(非0)、 否则其值为0。 关系运算符:关系运算符:、=、=、!=!= 例:a=2 、39 、a != ( a=8 ) 、x+(y=3)=k*z 、(a!=3)(kbcd 应表示为 ab a=b=c=0;

2、+ +a|+ +b后a、b、c值分别为1、0、0 2、执行 int a=5,b=6,x=1,y=2;(a=xy) 后a、b值分别为0、6a=1a=1 停止不算停止不算值为值为 0 0 赋给赋给a a, 停止不算停止不算 3、执行 int a,b,c;a=b=c= - 1;+ +a 后a、b、c值分别为0、-1、0 1 1a=0a=02 2不算,值为不算,值为0 03 3c=0c=04 4整体为整体为0 0例1: main() char c=k;int i=1,j=2,k=3;float x=3e+5,y=0.85;printf(“%d,%dn“,!x*!y,!x);printf(“%d,%dn

3、“,x|i ; c=c=getchargetchar();(); if(cif(c=z )=z )a=c; a=c; /*/*判断非小写字母情况判断非小写字母情况* */ /if(cif(c=a)=a) a=c-32; a=c-32; * *判断是否是小写字母情况判断是否是小写字母情况* */ / printf(“%cn“,aprintf(“%cn“,a);); main()main() char c;char c;c= c=getchargetchar();();if(cif(c=a)ca)c-=32;-=32;printf(“%cn printf(“%cn“,c);“,c);2、第二种形式

4、为为: if-elseif(if(表达式表达式) ) 语语语语句句1 1; else else 语语语语句句2 2; 语义:如果表达式的值 为真,则执行语句1,否则 执行语句2 。 后面不能 加;void main()int a, b;printf(“input two numbers: “);scanf(“%d %d“,if(ab)printf(“max=%dn“,a);elseprintf(“max=%dn“,b);输输输输入:入:23 4623 46输输输输出:出:max=46max=46输入两个整数输入两个整数输出其中大数输出其中大数例例2 2的改写的改写3、第三种形式为为if-els

5、e-if形式: if(if(表达式表达式1)1)语语语语句句1 1;else if(else if(表达式表达式2) 2) 语语语语句句2 2;else if(else if(表达式表达式3) 3) 语语语语句句3 3; else if( else if(表达式表达式m) m) 语语语语句句mm;else else 语语语语句句n n;语义:依次判断表达式的 值,当出现某个值为 真时,则执行其对应 的语句。然后跳到整 个if语句之外继续执行 程序。 如果所有的表 达式均为假,则执行 语句n。然后继续执行 后续程序。后面不能 加;此为真此为真, ,做语句做语句1 1, 其它语句都不做其它语句都不

6、做上面的语句为以下三种格式: 1、空语句 2、一个语句(不引起转移) 3、前后加大括号的语句(复合语句),也 叫程序段,如: int a;float b;a=3;b=7.0;;允许在复合语句前部定义变量,只允许在复合语句前部定义变量,只 能在复合语句中使用能在复合语句中使用 intint a; a; a=3;a=3;float b; float b;b=7.0; b=7.0;变量要在变量要在 最前面定最前面定 义义不能写成#include“stdio.h“void main() 输输输输入:入:A Achar c; 输输输输出:出:This is a capital letterThis is

7、 a capital letterc=getchar();if(c=0b+;elsea=0;b=10; if(ab)a+;b+;;elsea=0;b=10;;不能写成复合语句复合语句5.4.25.4.2条件运算符和条件表达式条件运算符和条件表达式在条件语语句中,只执执行单单个的赋值语赋值语 句时时,可使 用条件表达式来实现实现 。条件运算符为为? ?和:,它是一个三目运算符三目运算符,即有 三个参与运算的量。 条件表达式的一般形式为为:表达式表达式1 1? ?表达式表达式2 2 : :表达式表达式3 3求求值规则为值规则为值规则为值规则为 :如果表达式1的值为值为 真,则则以表达式2 的值值作

8、为为条件表达式的值值,否则则以表达式2的值值作 为为整个条件表达式的值值。非非 0 00 0例如条件语语句:if(ab) max=a; else max=b;if(ab) max=a; else max=b; 可用条件表达式写为为: max=(ab)?a:b;max=(ab)?a:b; 执执行该语该语 句的语义语义 是: 如ab为为真,则则把a赋赋予max, 如ab为为假,则则把b 赋赋予max。使用条件表达式时时,还应还应 注意注意以下几点: 1)条件运算符的运算优优先级级低于关系运算符 和 算术术运算符,但高于赋值赋值 符。因此:max=(ab)?a:bmax=(ab)?a:b 可以去掉括

9、号而写为为 max=ab?a:bmax=ab?a:b 2)条件运算符? ?和:和:是一一对对对对运算符,不能分开运算符,不能分开单单单单独使用独使用。 3)条件运算符的结结合方向是自右至左自右至左。例如:ab?a:cd?c:dab?a:cd?c:d应应理解为为 ab?a:(cd?c:d)ab?a:(cd?c:d)这这也就是条件表达式嵌套的情形,即其中的 表达式3又是一个条件表达式。例6:计算方法一: void main( ) float x,y;scanf (”%f ”,if (x3) y=x*x+2;else y=3*x+7*x*x;printf(”y=%fn”,y); x x2 2+2 (

10、x3)+2 (x3) y=y=3x+7 3x+7 x x2 2(x3) (x3)表达式,成立值为表达式,成立值为1 1y=x3 ? x*x+2 : 3*x+7*x*x;y=x3 ? x*x+2 : 3*x+7*x*x;例7:从键盘输入任意的两个实数,按从小到大顺序 输出这两个数,请编程实现。 void main( ) float a,b;scanf (”%f%f ”,if (ab)a=a+b;b=a-b;a=a-b; /*/*实现实现a a与与b b的互换的互换* */ /printf(”%f,%fn”,a,b); 可用语句if (ab)float t ;t=a;a=b;b=t;if (ab)

11、float t ;t=a;a=b;b=t;代替复合语句可以定义变量复合语句可以定义变量a=a+b;b=a-b;a=a-bt=a;a=b;b=ta a3+13+1b ba-b=3a-b=3a aa-3=1a-3=1a a3 3b b1 1t t3 3b b3 3a a1 1a a3 3b b1 1例8:P105 5.5 计算方法一: main( ) float x,y;scanf (”%f ”,if (x20 ) if ( x20 ) printfprintf(”(”输入的数据是错误的输入的数据是错误的” ”););else if (-220 ) if ( x20 ) printfprintf(”(”输入的数据是错误的输入的数据是错误的” ”););elseif (-2x printf(”y=%fn”,y); else if (1=x printf(”y=%fn”,y);else y=3*x-11; printf(”y=%fn”,y);

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 中学教育 > 教学课件

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号