[理学]C课件第04章_第1页
[理学]C课件第04章_第2页
[理学]C课件第04章_第3页
[理学]C课件第04章_第4页
[理学]C课件第04章_第5页
已阅读5页,还剩34页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、关系运算和逻辑运算 if语句switch语句条件运算符第四章Begin:第四章 选择结构程序设计 2.4.2 关系运算符与关系表达式关系运算(比较运算)即比较两个量的大小,比较的结果为“真”或“假”。例:a3如果a=8,则结果为“真”;如果a=1,则结果为“假”1.关系运算符含义运算符优先级结合性小于6左结合小于等于6左结合大于等于=6左结合等于=7左结合不等于!=7左结合C关系运算符2.关系表达式用关系运算符将两个表达式连接起来的式子。24 基本运算符及其表达式一般形式:其中:表达式1和表达式2可以是任何表达式。 a bc != y(x z)=(y z)m+n = c 例:关系运算符的优先级

2、低于算术运算符高于赋值运算符int a=10,b=5,c=2;a b c ?C语言没有逻辑型数据。因此, 在返回逻辑值时:用1表示“真”,用0表示“假”; 在判断逻辑值时:用非0代表“真”,用0代表“假”。24 基本运算符及其表达式例:#includevoid main()int a=10,b=5,c=2; printf(%d,%d,%dn,ab,abc);1,0,0关系表达式只能表达一些简单的关系,如:sum=1500y!=z即只能对一个条件进行测试。而以下关系: 20 x100则不能用关系表达式表达。逻辑非! 真值表1.逻辑运算符 C逻辑运算符:含义运算符优先级结合性逻辑非!2右结合逻辑与

3、&11左结合逻辑或|12左结合2.4.3 逻辑运算符与逻辑表达式逻辑或 真值表2.逻辑表达式 用逻辑运算符将表达式连接起来的式子。如: 1) 0 x10 x=0 & x5或x5 | x15 3) a、b不能同时为零 !(a=0 & b=0)逻辑与& 真值表一般形式为:表达式1逻辑运算符表达式22.4.3 逻辑运算符与逻辑表达式 逻辑表达式是构成选择结构条件的基本式子。注意在计算逻辑表达式时,并非所有的逻辑运算符都参与运算。如:x = y = -1; +x & +y; /* x=? y=? */0-1“短路能力”算术运算关系运算逻辑与、或逻辑非运算符运算优先级小结:2.4.3 逻辑运算符与逻辑表

4、达式4.1 用if语句实现选择结构4.1.1 if语句的三种形式 格式一:单分支结构 if ( ) 语句A ;语句执行过程: 先判断条件(表达式),若条件成立,就执行语句A;否则,直接执行if后面的语句。该结构的流程图如右图所示。 例:if (grade =60) printf(Passedn);注意:单分支结构只有在条件为真时,才执行给定的操作,如果条件为假,则不执行任何操作。1)条件均为逻辑表达式或关系表达式,也可以是任意的数值类型。 2)语句可以是单语句,也可以是复合语句。 注意:在复合语句 外不需再加分号 。例:if (3) printf(O. K.n); if (q) printf(

5、%dn, a); if (3x & x=5) printf(3xb) t=a; a=b; b=t; 说明:例:键盘输入一个整数,输出该数的绝对值。main () int num; printf(请输入一个整数%d:n); scanf(%d, num ); if ( num y, 直接输出;要么xy,两数交换。4.1 用if语句实现选择结构main( ) int x, y, t; printf(Please input two integers:n); scanf(%d%d, &x, &y ); if ( x y ) t=x; x=y; y=t; printf( nx=%d, y=%dn, x,

6、 y ); 格式二:双分支结构 if ( ) 语句A;else 语句B ;注意: else子句是if语句的一部分,它不能作为语句单独使用,必须与if配对使用。4.1 用if语句实现选择结构语句执行过程: 先判断条件(表达式),若条件成立,就执行语句A;否则,执行语句B。即一定会执行语句A和语句B中的一句,且只能执行其中的一句。该结构的流程图如右图所示。例:if (grade =60) printf(“Passedn”); else printf(“Failedn”);例 : 计算void main ( ) float x, y; printf(Please Input x(%f): n); s

7、canf(%f, &x); if ( x = 0 ) y = 3 * x + 6; else y = -x * x + 2 * x - 8; printf(y=%.2fn, y); 4.1 用if语句实现选择结构格式三:多分支结构 if() 语句1;else if() 语句2; else if() 语句n-1; else 语句n;表达式1表达式2表达式3表达式n-1语句n语句n-1.语句3语句2语句1.真真真真假假假假4.1 用if语句实现选择结构对多种情况进行测试,实质是嵌套的if-else结构例:计算4.1 用if语句实现选择结构#include void main() float x,

8、y; printf(“Input%f :n); scanf(%f, &x); if (x 0) y = x-7; else if (x=0) y = 2; else y = 3*x*x; printf(%.2f n, y);初始化变量xx0 x=0y=x-7y=3*x*xy=2YNYN4.1 用if语句实现选择结构例:根据学生的课程成绩在不同的分数段内,打印正确的等级名称90A8089B7079C6069D59E清晰4.1 用if语句实现选择结构if (grade=90) printf(“A”);else if (grade=80) printf(“B”); else if (grade=70

9、) printf(“C”); else if (grade=60) printf(“D”); else printf(“E”);if (grade=90) printf(“A”);else if (grade=80) printf(“B”);else if (grade=70) printf(“C”);else if (grade=60) printf(“D”);else printf(“E”);注意这里隐含的情况:分数小于90说明:在三种形式的if语句中的语句均为内嵌语句,故分号不能省略。此外,内嵌语句可以是单个语句,也可以由多个语句组成的复合语句。4.1 用if语句实现选择结构例:if (

10、a 0) /*error: 缺少if子句*/ else x = -x;程序在书写时,建议采用缩进格式,以突出程序的结构,便于阅读和修改。例2:if ( a0 ) if ( b0 ) printf(%d,%dn, a, b); else printf(%dn, a); else if ( b0 ) printf(%dn, b); else printf(n);if语句中又包含一个或多个if语句称为if语句的嵌套。请说出以下两段程序的功能:例1:if ( a0 ) if ( b0 ) printf(%d,%dn, a, b);如果a,b都是正数,则输出a,b输出a,b中的正数4.1 用if语句实现

11、选择结构4.1.2 if语句的嵌套说明: 三种if语句可以互相嵌套。在多个ifelse的嵌套中,从最内层开始,else总是与它上面最近的一个if配对。如:4.1 用if语句实现选择结构内层的选择结构必须完整地嵌套在外层的选择结构内,两者不允许交叉。以下是错误的理解:4.1 用if语句实现选择结构例 :读程序。main( ) int a=2, b=1, c=2; if (a) if ( b0 ) c=0; else c+ ; printf(%dn,c); main( ) int a=2, b=1, c=2; if (a) if (b=cmax=cmax=bmax=cYb=cYmax=aa=bNN

12、YN4.1 用if语句实现选择结构程序:main( ) int a, b, c, max ; printf (”请输入三个整数:%d%d%dn”); scanf( %d%d%d, &a, &b, &c ); if ( a=b ) if ( a=c ) max=a; else max=c; else if ( b=c ) max=b; else max=c; printf (”n最大数为:%dn”,max ); 4.1 用if语句实现选择结构switch语句的格式:switch (条件表达式) case : 语句1; break; case : 语句2; break; case : 语句n-1;

13、 break; default: 语句n; break;4.2 用switch语句实现多分支选择结构条件表达式:整型/字符型表达式(或枚举表达式)常量表达式:整型/字符型常量表达式例:根据成绩等级输出相应分数段范围4.2 用switch语句实现多分支选择结构main() char grade; printf(Please input a grade(A - D):); scanf(%c, &grade); switch(grade) case A: printf(85 100n);case B: printf(70 84n);case C: printf(60 69n);case D: pri

14、ntf( 60n);default: printf(Input error!); B7084606960Input error!?switch语句结果分析流程图选择结构print“6069”print“7084”print“85100”print“60”print“error”ABCDdefaultgradeswitch语句正确的流程图选择结构print“6069”print“7084”print“85100”print“60”print“error”ABCDdefaultgrade正确的程序:main() char grade; printf(Please input a grade(A -

15、 D):); scanf(%c, &grade); switch(grade) case A: printf(85 100n); break; case B: printf(70 84n); break; case C: printf(60 69n); break; case D: printf(= 3000) c = 12; else c = s/250; switch(c) case 0: d = 0; break; case 1: d = 2; break; case 2: case 3: d = 5; break; case 4: case 5: case 6: case 7: d =

16、 8; break; case 8: case 9: case 10: case 11: d = 10; break; case 12: d = 15; break; f = p*w*s*(1 - d/100.0); printf(距离为%.2fkm时的运费是:%.2f元。n, s, f);4.2 用switch语句实现多分支选择结构2.4.4 条件运算符与条件表达式条件运算符: ? : 三目运算符 右结合例:ab ? max=a : max=b例:(grade=60)?printf(“Passed”):printf(“Failed”);条件表达式一般形式:?:说明:条件表达式主要用于对在if语句中无论条件是否成立,都只执行一个赋值语句给同一变量赋值的情况4.3 用条件表达式实现选择结构例: if(a b)min = a; elsemin = b;min = (ab) ? a : b;等价于(ab)?min=a : min=b;条件运算符的优先级高于赋值运算符,低于算术运算符、关系运算符和逻辑运算符。4.3 用条件表达式实现选择结构min=ab?a:b; 等价于 min =(ab)?a:b;条件运算符的结合性为“自右向左”。ab ? a : bc ? b : c 等价于ab ? a

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论