
第四章 选择结构的程序设计
北京理工大学 1

本章要点 程序为什么要用选择结构 如何设置条件 如何构造控制流程 2
北京理工大学 2 本章要点 • 程序为什么要用选择结构 • 如何设置条件 • 如何构造控制流程

为什么要用? 问颧 根据学生分数判断是否及格? 根据学生分数如何进行分级? 如何解决? 自然语言:如果.那么. 否则. C语言: 分支语句 分支语句是控制程序执行选择结构的语句 是程序实现逻辑判断的唯一形式 共34页第3页
共 34 页 第 3 页 分支语句是控制程序执行选择结构的语句 是程序实现逻辑判断的唯一形式 根据学生分数判断是否及格? 根据学生分数如何进行分级? 自然语言:如果. 那么. 否则. C语言: 分支语句 如何解决? 为什么要用?

4.1关系表达式与逻辑表达式 关系运算符和表达式 种类:= > 优先级6(高) > >= 结合方向:自左向右 = 优先级7(低) ·优先级别: 关系表迟式的值:是罗辑值 中真”或“假”,用 a>bc 1和0表云 7(a6 例 int a=3,b=2,c=1,d,f; a>b /表达式值1 (a>b)==c /表达式值1 b+cb>c 1/f=0 共34页第4页
共 34 页 第 4 页 4.1 关系表达式与逻辑表达式 关系运算符和表达式 ⚫ 种类:= > != ⚫ 结合方向:自左向右 ⚫ 优先级别: >= == != 优先级6(高) 优先级7(低) 例 c>a+b //c>(a+b) a>b!=c //(a>b)!=c a==bc //a=(b>c) ⚫ 关系表达式的值:是逻辑值“真”或“假”,用 1和0表示 例 int a=3,b=2,c=1,d,f; a>b (a>b)==c b+cb>c //表达式值1 //表达式值1 //表达式值0 //f=0

关系运算符和表达式 ●关系运算注意: 例5>2>7>8在C中是允许的, 值为 0 例应避免对实数作相等或不等的判断 如 1.0/3.0*3.0=1.0结果为0 可改写为:fabs(1.0/3.0*3.0-1.0)<1e-6 例 注意区分“=”与“一” int a-0,b=1; if(a b) printf(“a equal to b") else printf("a not equal to b"); 共34页第5页
共 34 页 第 5 页 关系运算符和表达式 ⚫ 关系运算注意: 例 5>2>7>8在C中是允许的, 值为 0 例 注意区分“=”与“==” int a=0,b=1; if(a=b) printf(“a equal to b”); else printf(“a not equal to b”); 例 应避免对实数作相等或不等的判断 如 1.0/3.0*3.0==1.0 结果为 0 可改写为:fabs(1.0/3.0*3.0-1.0)<1e-6

逻辑运算符和表达式 ●种类:!&&川 逻辑运算真值表 a b la !b a&&b ab 真 真 假 假 真 真 真 假 假 真 假 真 假 真 真 假 假 其 假 假 真 真 假 假 C语言中,运算量: 0表示“假”, 非0表示“真”, 运算结果: 0表示“假”, ◆ 1表示“真”, 共34页第6页
共 34 页 第 6 页 逻辑运算符和表达式 ⚫ 种类: ! && || ⚫ 逻辑运算真值表 a b !a !b a&&b a||b 真 假 真 假 假 假 真 真 真 假 假 假 假 假 真 真 假 假 真 真 真 假 真 真 ⚫ C语言中,运算量: 0表示“假” , 非0表示“真” , 运算结果: 0表示“假” , 1表示“真”

逻辑运算符和表达式 。优先级: (2) 从右向左 高 ●结合方向: &&(11) &&:从左向右 (12) 低 :从左向右 例inta=4;float b=5.0; la 值为0 a&&b 值为1 lallb 值为1 4&&02 值为1 5>3&&283)&&2I(83&&8<4-10 值为0 共34页 第7页
共 34 页 第 7 页 逻辑运算符和表达式 ! (2) && (11) || (12) 高 低 ⚫ 优先级: ⚫ 结合方向: ! :从右向左 && :从左向右 || :从左向右 (a3&&2||83&&83)&&2||(8<(4-(!0))) 值为1

逻辑运算符和表达式 ●优先级: 从右向左 高 ●结合方向: &&(11) &&:从左向右 (12) 低 :从左向右 短路特性:逻辑表达式求解时,并非所有的逻辑运算符都 被执行,只是在必须执行下一个逻辑运算符才能求出表达 式的解时,才执行该运算符 例a=1;b=2,c=3,d=4p=1;q=0, ◆ (p=a>b)&&(q=c<d) 1/结果p=0,q=0 ■ 共34页第8页
共 34 页 第 8 页 逻辑运算符和表达式 ! (2) && (11) || (12) 高 低 ⚫ 优先级: ⚫ 结合方向: ! :从右向左 && :从左向右 || :从左向右 ⚫ 短路特性:逻辑表达式求解时,并非所有的逻辑运算符都 被执行,只是在必须执行下一个逻辑运算符才能求出表达 式的解时,才执行该运算符 例 a=1;b=2;c=3;d=4;p=1;q=0; (p=a>b)&&(q=c<d) //结果p=0,q=0

4.2 算法与流程图 算法及算法的表示方法 二、结构化程序设计方法 共34页第9页
共 34 页 第 9 页 4.2 算法与流程图 一、算法及算法的表示方法 二、结构化程序设计方法

一、算法及算法的表示方法 做事情都有一方法、步骤(顺序)一決定事情成败 算法:完成一项任务的具体步骤 任何解决问题的过程都是由一定的步骤组成的,把解决问 题确定的方法和有限的步骤称作为算法。 ■ 共34页第10页
共 34 页 第 10 页 一、算法及算法的表示方法 做事情都有——方法、步骤(顺序)——决定事情成败 算法:完成一项任务的具体步骤 任何解决问题的过程都是由一定的步骤组成的,把解决问 题确定的方法和有限的步骤称作为算法