内容正文:
身高体型判定系统的决策判定(1.关系逻辑与if语句)
C语言程序设计
-第6课时-
高教版第2版
学习目标
知识目标
深入理解并掌握 if 语句的三种基本形式及其执行流程。
掌握C语言中的6种关系运算符,正确书写和理解关系表达式。
掌握3种逻辑运算符,理解其运算规则、优先级及“短路”现象。
技能目标
熟练运用 if 语句与逻辑表达式,编写具备选择功能的C语言程序。
能够分析程序逻辑流程,准确预测不同输入下的程序输出结果。
养成良好编程习惯,编写结构清晰、逻辑正确且易于阅读的代码。
素质目标
通过选择结构的学习,系统训练分析问题、建立逻辑模型与解决实际问题的核心能力。
深刻理解程序设计中“判断”与“分支”的核心思想,建立结构化编程的思维框架。
基础知识认知
C语言怎样实现现实世界的选择逻辑?
知识讲授
if 语句
定义:C语言中实现选择结构的核心语句。根据条件的真假(非零或零)决定执行哪部分代码,是程序“判断”与“分支”的基础。
作用:打破程序单一的线性执行流程,赋予程序“思考”能力,使其能根据不同的输入或状态,自动选择执行不同的代码分支。
逻辑表达式
定义:使用逻辑运算符(&&、||、!)将一个或多个关系表达式连接而成的式子。运算结果只有“真”(非0)和“假”(0)两种状态。
作用:用于构建复杂的判断条件。当程序需要同时满足多个条件(如“及格且出勤达标”),或满足任一条件时,逻辑表达式是核心工具。
目录
模块一:选择程序需求与 if 语句
从实际场景出发,掌握 if 语句的基本语法结构
模块二:关系运算符与表达式
深入理解大小比较逻辑,构建基础判断条件
模块三:逻辑运算符与表达式
组合多个条件,实现复杂场景的逻辑判断
选择程序需求与 if 语句
第一部分
知识讲授
if 语句
知识讲授
从需求到代码 —— 引出选择程序设计
📝 场景回顾:身高体型判定系统
💡 初始需求:程序功能单一,仅能完成固定的计算任务,无法响应用户的多样化操作请求。
🚀 改进需求:用户希望程序提供功能菜单(预测身高、判定体型、退出),支持自主选择要执行的功能。
🔄 交互流程:程序展示功能菜单 → 用户输入数字选择 → 程序根据选择执行对应代码。
💎 核心概念:选择程序设计
📖 定义:为了实现“根据不同情况执行不同代码”的逻辑,我们在编程中需要使用的一种基本结构,即选择程序设计。
🧠 核心思想:程序首先对一个条件进行判断(真/假),然后根据判断的结果,动态选择执行不同的代码路径。
🛠️ 实现工具:在 C 语言中,实现选择结构最基础、最常用的语句就是`if` 语句。
知识讲授
if 语句的一般格式与构成
C语言语法格式
if(表达式)
要执行的语句;
else(可选)
条件为假时的语句;
核心:根据表达式的真/假(非0/0),决定程序的执行分支。
知识讲授
if 语句的三种常用形式——单分支 if 语句 (无 else)
形式一:单分支 if 语句 (无 else)
if (表达式) {
语句块;
}
执行逻辑:
判断条件表达式的真假,若为真则执行大括号内的语句块;若为假则直接跳过该结构,继续执行后续代码。
知识讲授
if 语句的三种常用形式——双分支 if-else 语句
形式二:双分支 if-else 语句
if (表达式) { 语句块1; }
else { 语句块2; }
执行逻辑:
二选一执行。条件为真时执行 if 后的语句块1;条件为假时执行 else 后的语句块2。覆盖了条件的所有可能性。
知识讲授
if 语句的三种常用形式——多分支 if-else if 语句
形式三:多分支 if-else if 语句
if (条件1) { ... }
else if (条件2) { ... }
else { ... }
执行逻辑:
从上到下依次判断条件,找到第一个结果为真的条件并执行其对应的语句块,执行完毕后直接跳出整个 if 结构。
背诵记忆
序号 核心概念名称 核心说明与记忆要点
01 系统改进 说明:合并多个功能,允许用户选择执行路径。
记忆:理解选择程序设计的现实需求来源。
02 if 语句格式 格式:if (表达式) 语句; [else 语句;]。
记忆:if后接表达式(真执行);else是可选“备胎”。
03 常用分支形式 形式:单分支(无else)、双分支(if-else)、多分支(if-else if)。
记忆:根据条件数量选择对应形式。
04 程序执行过程 流程:计算表达式值 → 判断真假(非0/0) → 执行对应语句块。
记忆:核心是“判断”,决定程序流向。
课堂练习
if语句中表达式的类型判定
【题目】在C语言的 if 语句中,if 后面括号内的表达式可以是哪些类型?
A. 只能是关系表达式 (错误) B. 只能是逻辑表达式 (错误)
C. 可以是任意类型的表达式 (正确) D. 只能是数值表达式 (错误)
【正确答案】 C( 依据:C语言中“非0即为真,0即为假”的判定规则 )
【解析】if语句的判断核心是表达式计算出的值是否为0。只要表达式能得到一个确定的数值结果(无论类型),就可以作为判断条件。因此,它可以是算术表达式、关系表达式、逻辑表达式,甚至是一个直接的变量或常量。
课堂练习
编程题
📝 例题2:无 else 子句的 if 语句执行流程
核心问题:单分支 `if` 语句在表达式结果为“真”或“假”时,分别是如何执行的?
💡 执行逻辑:
1. 首先计算 `if` 后表达式的值。
2.真 (非0):执行紧跟的语句/语句块。
3.假 (0):直接跳过该部分,执行 `if` 结构之后的代码。
💻 综合应用:判断整数是否为偶数
需求分析:
编写程序,输入一个整数,利用 `if` 语句判断其奇偶性。若为偶数,输出“X 是偶数”;非偶数则无输出。
#include <stdio.h>
int main() { int num;// 定义变量
printf("输入整数:"); scanf("%d", &num);
if (num % 2 == 0)printf("%d 是偶数。
", num);
return 0; }
💡 关键点:利用取模运算符 `%` 判断余数是否为 0。
关系运算符
第二部分
知识讲授
关系运算符
知识讲授
关系运算符 —— 程序比较的基石
功能:用于比较两个操作数的**大小关系**或**相等关系**。
结果:运算后返回一个**逻辑值**(布尔值),即真(非0)或假(0)。
场景:常用于 if 判断、while 循环等流程控制语句中。
知识讲授
关系表达式
表达式解析:a < b < c
C语言中按左结合计算:(a < b) < c
注意:这并不等价于数学上的 "b在a和c之间" (即 a<b && b<c),在编程中需特别注意区分。
背诵记忆
序号 名称 核心说明与记忆要点
1 关系运算符 共6种:<, <=, >, >=, ==, !=。
记忆要点:前四种优先级高于后两种;==是判等,=是赋值,务必区分。
2 优先顺序 核心规则:算术 > 关系 > 赋值。
记忆要点:先算乘除加减,再比较大小,最后进行赋值运算。
3 关系表达式 定义:用关系运算符将运算量连接起来的式子。
记忆要点:值为逻辑值,成立为1(真),不成立为0(假)。
课堂练习
关系运算符优先级判定
题目:在 C 语言的关系运算符中,`<`(小于)和 `==`(等于)的优先级哪个更高?
A. `<` 优先级更高 (正确选项)
B. `==` 优先级更高 (错误)
C. 两者优先级完全相同 (错误)
D. 优先级取决于具体的代码场景 (错误)
【参考答案】 A
【核心解析】:C语言将关系运算符划分为两个优先级组。
① 高优先级组:包含 `<`、`<=`、`>`、`>=`(比较大小的运算符);
② 低优先级组:包含 `==`、`!=`(判断相等的运算符)。
因此在运算时,会优先执行 `<` 运算,再执行 `==` 运算。
逻辑运算符
第三部分
知识讲授
逻辑运算符
知识讲授
逻辑运算符
定义:逻辑运算符用于对一个或多个逻辑值(真/假)进行组合运算,运算结果仍然是一个逻辑值。它是在编程中构建复杂判断条件(如多重条件筛选)的关键基础。
&&
逻辑与 (AND)
双目运算符,要求“两边同时为真”,最终结果才为真。只要有一个为假,结果即为假。
||
逻辑或 (OR)
双目运算符,只要“任意一边为真”,最终结果就为真。只有当两边同时为假时,结果才为假。
!
逻辑非 (NOT)
单目运算符,对原有逻辑值进行“取反”操作。原值为真则结果为假,原值为假则结果为真。
▎真值表解析
基础逻辑值 (a, b)
真/真 | 真/假 | 假/真 | 假/假
!a (逻辑非)
假 | 假 | 真 | 真
a && b (逻辑与)
真 | 假 | 假 | 假
a || b (逻辑或)
真 | 真 | 真 | 假
知识讲授
逻辑运算符分类
知识讲授
逻辑运算符的优先级与结合性
优先级顺序(从高 → 低)
01. 圆括号 ( )—— 改变运算优先级的最高手段
02. 逻辑非 !—— 单目运算符,取反操作
03. 算术运算符—— + - × / % (先乘除后加减)
04. 关系运算符—— > < == != >= <= (比较大小)
05. 逻辑与 &&—— 双目运算符,"并且" (一假即假)
06. 逻辑或 ||—— 双目运算符,"或者" (一真即真)
经典示例解析
a > b || c < d && e == f
💡 运算执行顺序
1. 先计算所有的关系运算 (>, <, ==);
2. 再计算优先级较高的 逻辑与(&&);
3. 最后计算优先级较低的 逻辑或(||)。
📝 加括号明确优先级
(a > b) || ((c < d) && (e == f))
💡 提示:利用圆括号可以改变默认的运算优先级
知识讲授
逻辑表达式的定义与分类
定义:用逻辑运算符将一个或多个关系表达式连接起来的式子,称为逻辑表达式,其运算结果为布尔值(真/假)。
知识讲授
逻辑运算符的优先级
优先级:! >&& > ||
综合性:自左至右
知识讲授
| 逻辑表达式计算过程与要点解析
▍ 计算过程实战示例
目标:(3 > 5) || (10 != 5) && !(2 < 1)
Step 1 (基础计算):先算括号与“非”。
(3>5)=0 | (10!=5)=1 | !(2<1)=!0=1
Step 2 (表达式替换):0 || 1 && 1
Step 3 (优先算“与”):1 && 1 = 1 → 表达式变为 0 || 1
Step 4 (最后算“或”):0 || 1 = 1
最终结果判定:1 (真 True)
▍ 核心规则与要点总结
基本运算规则
与(&&):一假则假; 或(||):一真则真; 非(!):取反
运算符优先级 (由高到低)
逻辑非 (!) > 逻辑与 (&&) > 逻辑或 (||)
重要特性:短路现象
与左假则右不算; 或左真则右不算。(提升运行效率)
表达式最终值
只有两种结果:1 (代表真) 或 0 (代表假)
背诵记忆
序号 核心概念 说明与记忆要点
01 逻辑运算符 规则:与(&&)一假则假;或(||)一真则真;非(!)取反。
💡 记忆:牢记三种符号对应的“真假”判定规则。
02 运算优先级 顺序:非(!) > 与(&&) > 或(||)。
💡 记忆:非运算级别最高,“与”在“或”之前计算。
03 短路现象 规则:与左假、或左真,右边表达式不执行。
💡 记忆:C语言的性能优化特性,会影响程序流程。
04 综合计算过程 步骤:按优先级与结合方向逐步拆解。
💡 记忆:括号 → 非 → 算术 → 关系 → 与 → 或。
课堂练习
▍ 随堂检测
Q1. 条件判断逻辑考察
在if-else分支语句中,如果 `if` 关键字后面的逻辑表达式计算结果为0(即逻辑假),程序的执行流向会发生什么变化?
参考答案:程序会跳过 `if` 子句的语句块,直接执行 `else` 子句所包含的语句块。
Q2. 复杂表达式运算优先级分析
对于复杂的逻辑表达式:!a && b || x > y && c,请描述其正确的运算执行顺序,并写出其等价的带括号形式。
参考答案:顺序为 `!`(非) → `>`(关系) → `&&`(与) → `||`(或)。
等价形式:((!a) && b) || (((x > y)) && c)。
师生互动
师生互动
1
在实际编程开发中,如何结合业务场景,合理运用if 条件语句与逻辑表达式,构建清晰、高效的判断逻辑来解决复杂的分支选择问题?
知识点总结
课后任务
布置作业:
绘制选择结构的思维导图,梳理本节课所学的if语句、运算符等核心知识点,巩固知识记忆。
小组合作设计一个简单的C语言计算器程序,要求根据用户输入的运算符(如+、-、*、/),实现相应的运算功能,必须使用if语句实现选择逻辑。
谢谢观看
THANKS
Lavf59.14.100
Lavf59.14.100
Lavf59.14.100
$