
知识回顾与问题引出程序设计基础知识1.算法是程序设计的核心与基础2.算法由顺序、分支、循环三种基本结构3.前面两章中涉及的程序都是顺序结构的简单程序4.在实际编程时往往需要根据一定的条件有选择地执行程序中代码,这就是本章要讨论的问题
知识回顾与问题引出 程序设计基础知识 1.算法是程序设计的核心与基础 2.算法由顺序、分支、循环三种基本结构 3.前面两章中涉及的程序都是顺序结构的简单程序 4.在实际编程时往往需要根据一定的条件有选择地 执行程序中代码,这就是本章要讨论的问题

问题引出1.简单的程序设计情况比较简单、顺序执行2.现实问题不可能如此简单试回顾上次课最后的程序,如果用户在运行程序后输入一个负数,会发生什么事情呢?回答是:程序仍将执行,并给出了一个错误的结果,显然程序是存在缺陷的解决的办法:在设计程序时,应该考虑输入的是正数还是负数的不同情况有选择地进行不同处理这就是本次课要研究的一一分支程序设计
问 题 引 出 1.简单的程序设计情况比较简单、顺序执行 2.现实问题不可能如此简单 试回顾上次课最后的程序,如果用户在运行程序后输 入一个负数,会发生什么事情呢? 回答是:程序仍将执行,并给出了一个错误的结果, 显然程序是存在缺陷的 解决的办法:在设计程序时,应该考虑输入的是正数 还是负数的不同情况有选择地进行不同处理 这就是本次课要研究的——分支程序设计

主要内容888OB3.1关系与逻辑运算3.2两路分支小结目的要求复习思考题上机与编程实践独立作业
主 要 内 容 3.1 关系与逻辑运算 3.2 两路分支 目的要求 复习思考题 上机与编程实践 独立作业 小 结

3.1关系与逻辑运算3.1.1逻辑数据1用来表示“真”和“假”的数据称为逻辑数据2.C中没有逻辑类型,它用其它类型来表示逻辑型数据3.C中规定,0值为“假”,非0值为“真”0值代表逻辑“假”非0值代表逻辑“真”非0值代表逻辑“真”0对C来说,无论何神类型的表达式,只要它的俏是0就是“真”的,否期就是“假”的图3-1C中的逻辑数据表示
3.1 关系与逻辑运算 3.1.1 逻辑数据 1.用来表示“真”和“假”的数据称为逻辑数据 2.C中没有逻辑类型,它用其它类型来表示逻辑型数据 3.C中规定,0值为“假”,非0值为“真” 图3-1 C中的逻辑数据表示

3. 1. 2关系运算1.关系运算概述(1)也叫比较运算,用来比较两个值的大小,结果是逻辑值(2)C中有6种关系运算表3-1关系运算符运算符含义优先级小于L小于或等于10>大于大于或等于等于9I-不等于
(1)也叫比较运算,用来比较两个值的大小,结果是逻辑值 3.1.2 关系运算 1.关系运算概述 (2)C中有6种关系运算 表3-1 关系运算符

2.注意事项(1)关系运算是二元运算,对两个值进行大小比较(2)任意类型的表达式都可以参加比较运算若有下面的定义:intm,n;int a =l, b = 2;floaty=5,z;举则下列的表达式都是合法的:5>3/*两个初级表达式(常量)比较*/y= b++/*一元表达式与后缀表达式进行比较*/(m = 4) >= (n = 3)/*两个赋值表达式进行比较*/(a > 5)(y>3)</*两个关系表达式进行比较*/
举 例 (1)关系运算是二元运算,对两个值进行大小比较 2.注意事项 (2)任意类型的表达式都可以参加比较运算 若有下面的定义: int m, n; int a = 1, b = 2; float y = 5, z; 则下列的表达式都是合法的: 5 > 3 /* 两个初级表达式(常量)比较 */ y = b++ /* 一元表达式与后缀表达式进行比较 */ (m = 4) >= (n = 3) /* 两个赋值表达式进行比较 */ (y > 3) 5) /* 两个关系表达式进行比较 */

(3)运算的结果若为“真”则值是1;若为“假”则值是0若有下面的定义:inta=3,b=2,x=5;举则下列的表达式:5>3结果为“真”值为1例X= b++(4前四个的优先级高于后两个,结合性都是左结合(5)不可以简单地通过几个连续的关系运算来构建复杂的条件举例3>x>5不能表示xE(3,5)
举 例 (3)运算的结果若为“真”则值是1;若为“假”则值是0 若有下面的定义: int a = 3,b = 2, x = 5; 则下列的表达式: 5 > 3 结果为“真” → 值为 1 x = b++ 结果为“真” → 值为 1 (4)前四个的优先级高于后两个,结合性都是左结合 (5)不可以简单地通过几个连续的关系运算来构建复杂的条件 举 例 3 > x > 5 不能表示x∈(3,5)

逻辑运算3. 1.31.逻辑运算概述逻辑运算是对逻辑值进行的运算C中有3种逻辑运算表3-2逻辑运算符含义运算符优先级151逻辑非0&&逻辑与4II逻辑或
逻辑运算是对逻辑值进行的运算 3.1.3 逻辑运算 1.逻辑运算概述 C中有3种逻辑运算 表3-2 逻辑运算符

2.几点说明(1)逻辑运算的结果是逻辑值!x的值Ix的结果X0假非0值10真逻辑非()xxily的结果xly的值yx&&y的值xyx&&y的结果000000假真真真假1000假假非0值非0值010非0值非0值011非0值非0值真非0值非0值逻辑与(&&)逻辑或(II)
(1)逻辑运算的结果是逻辑值 2.几点说明 x 非0值 0 !x的结果 假 真 !x的值 0 1 逻辑非(!) y 0 非0值 0 非0值 x&&y的结果 假 假 假 真 逻辑与(&&) x 0 0 非0值 非0值 x&&y的值 0 0 0 1 y 0 非0值 0 非0值 x||y的结果 假 真 真 真 逻辑或(||) x 0 0 非0值 非0值 x||y的值 0 1 1 1 x 非0值 0 !x的结果 假 真 !x的值 0 1 逻辑非(!) y 0 非0值 0 非0值 x&&y的结果 假 假 假 真 逻辑与(&&) x 0 0 非0值 非0值 x&&y的值 0 0 0 1 y 0 非0值 0 非0值 x||y的结果 假 真 真 真 逻辑或(||) x 0 0 非0值 非0值 x||y的值 0 1 1 1 x 非0值 0 !x的结果 假 真 !x的值 0 1 逻辑非(!) y 0 非0值 0 非0值 x&&y的结果 假 假 假 真 逻辑与(&&) x 0 0 非0值 非0值 x&&y的值 0 0 0 1 y 0 非0值 0 非0值 x||y的结果 假 真 真 真 逻辑或(||) x 0 0 非0值 非0值 x||y的值 0 1 1 1 x 非0值 0 !x的结果 假 真 !x的值 0 1 逻辑非(!) y 0 非0值 0 非0值 x&&y的结果 假 假 假 真 逻辑与(&&) x 0 0 非0值 非0值 x&&y的值 0 0 0 1 y 0 非0值 0 非0值 x||y的结果 假 真 真 真 逻辑或(||) x 0 0 非0值 非0值 x||y的值 0 1 1 1

(2任意类型的表达式都可以参加逻辑运算若有下面的定义:int a =0, b = 13;floaty=-3.14;char c= “A' ;举则下列的表达式都是合法的:!5值为0结果为“假”!a值为1结果为“真例!y值为0结果为“假值为0! (b% 2)结果为“假”值为1结果为“真”a>=0&&a=a&&c=A&&c<=Z)
举 例 (2)任意类型的表达式都可以参加逻辑运算 若有下面的定义: int a = 0, b = 13; float y = -3.14; char c = ‘A’; 则下列的表达式都是合法的: !5 结果为“假” → 值为0 !a 结果为“真” → 值为1 !y 结果为“假” → 值为0 !(b % 2) 结果为“假” → 值为0 a >= 0 && a =‵a‵&&c=‵A‵&&c<=‵Z‵) 结果为“真”→值为1