当前课程知识点:高级语言程序设计 >  选择结构程序设计 >  3.2 如何正确表示选择结构中的条件 >  如何正确表示选择结构中的条件

返回《高级语言程序设计》慕课在线视频课程列表

如何正确表示选择结构中的条件在线视频

如何正确表示选择结构中的条件

下一节:用if语句及if语句嵌套实现选择结构

返回《高级语言程序设计》慕课在线视频列表

如何正确表示选择结构中的条件课程教案、知识点、字幕

同学们好

今天我们和大家一起学习

如何正确表示选择结构中的条件

我们都知道选择结构程序运行的过程

是当满足一定的条件

它就执行相应的操作

那么在写选择结构语句的时候

我们要注意两个要素

第一个就是这个条件

第二个呢就是执行的操作

那么今天呢

我们要学习第一个要素 就是条件

为了准确表示条件

我们今天要学习两个新的运算符

也就是关系运算符和逻辑运算符

那么关系运算符是一个比较运算符

一般来表示 只是表示单一的条件

那么逻辑运算符呢

它一般用来连接多个单一的条件

在学习这两个运算符的时候

我们要带着大家搞清楚三个问题

第一个就是

这些运算符该怎么样在表达式里使用

第二个就是

它们有哪些特殊的计算的性质

第三个就是

这些运算符和其他运算符放在一个表达式里

那么这个优先级是怎么样的

也就是谁先算谁后算

结合性又是怎样的

如果我们搞清楚了这些问题呢

我们才能够正确地表示选择结构中的条件

好 下面我们一起来看一个if语句

这个if后面的括号里 它是需要判断的条件

这个条件是由操作数和运算符

连接起来的表达式

大家看 这里b*b-4*a*c>=0

那么它就是一个条件表达式

那其中的变量b、a、c

还有常量4和0 这些都是操作数

其中的乘法、减法、大于等于都是运算符

那么这些运算符除了我们学过的

算术运算符之外

还有一个大于等于符号就是比较运算符

它也就是关系运算符

那么下面呢我们先来一起学习关系运算符

所谓关系运算符它就是一个比较运算符

是专门用来比较两个变量的值

那么这个运算符连接起来一些操作数

它就组成了这样一个关系表达式

其实我们都知道任何一个表达式

它都会有运算的结果

那这个关系表达式

它的运算结果是怎么样的呢

它的这个运算结果呢 要么是真 要么是假

也就是说 关系要么成立要么不成立

那么在C语言当中

真和假我们要用相应的数值来表示

这个时候我们用非零的数表示真

零表示假

好下面我们来看这样一个例子

这里有一个if语句

if语句括号里的条件

要对关系表达式score>=60进行判断

也就是我们上一节提到过的

表示某一个同学的分数是否及格

那么这个时候进行判断的话

当score值为78

很显然这个关系表达式的值为真

因为78大于等于60

如果score的值为59

那这个关系表达式的结果为假

因为59小于60

所以这个score大于等于60不成立

那么它为假

那么这个时候呢

关系运算符除了刚才讲的大于小于等于之外

那还有一些小于等于、大于等于、不等于

这样的运算符

那么这些运算符 其实它是表示

这个数学里面的一种比较关系

那么这个时候大家要注意了这些符号的写法

我们在写代码的时候

要注意不同的学科领域

这些符号 这些运算符

它的书写形式是不一样的

特别是像数学学科里面

比如说小于等于、大于等于、等于不等于

这样的运算符

用C语言书写和表示

这个时候一定要区分开来

打个比喻啊 比如说

在数学运算符里

比如这个等号 它就表示等于

但是这个等号如果放在C语言当中呢

它就表示一个赋值运算符

对吧 所以这个大家一定要注意不同学科里面

这个符号表示的含义是不一样的

那么除了刚才讲的

这个单一的这样一个条件

有的时候呢选择结构

它还要书写多个条件的情况

也就是说这多个条件都要满足

那么这个时候多个条件怎么样来表示呢

那么这个时候我们就要用

逻辑运算符来进行连接

就把逻辑运算符连接这些单一的条件

那么逻辑运算符它有这三种符号

非、与、或

由这三种符号连接的这些操作数

组成的表达式它就是逻辑表达式

我们可以举个例子来看一下

比如说这个分数在70到79分之间

那么这样一个条件可以用

Score大于等于70并且score小于等于于79

这样一个式子来表示

那么这个式子 它的运算的结果

同样也是真或假这两种情况

C语言当中规定 1表示真 0表示假

或者说非0就是真 0就是假

那么在这个式子中 如果score的值为72

那么 score大于等于70 成立 为真

score小于等于79成立 也为真

两个真 做与运算 它的结果也为真

那么这个逻辑运算的运算规则是怎么样的呢

怎么样由两个数据

做逻辑运算得到相应的结果

所以这个时候我们就要

一起来看一下逻辑运算的真值表

如果将a、b两者做逻辑运算

那么a、b的取值情况无非就是这四种

要么a、b值为真真 要么为真假

要么为假真 要么为假假

那么在运算的时候如果是非运算

我们就要保证一点

就是非真即假 非假即真

如果a、b做逻辑与运算

那么这个运算的情况就是这样的

这个a、b必须同时为真 结果才为真

其他情况

也就是说a、b为真假、假真或者假假

那么它的运算结果就为假

如果是a、b的逻辑或运算它是这样的

a、b同时为假的时候 结果为假

其他情况 结果为真

了解了逻辑运算的运算规则之外

那么逻辑运算还有两点 大家一定要注意

哪两点呢 第一点就是

就是大家一定要注意

从数学的角度上看是一个正确的表达式

但是在C语言的逻辑上看不一定是正确的

也就是在不同的领域

它的书写的这个形式是不一样的

我们举个例子

比如说判断这个学生的

这门课成绩在A、B、C、D某一个等级

如果判断B等级的分数段

那么这个式子会写成写成

70小于等于scoreScore小于等于79

那么这样 大家可以看一看

这样这个数学里面的这样一个式子

我们可以进行一个运算

假如说score的值为50

那么这个表达式的值为多少呢 是真还是假呢

我们来看一下 score的值为50

那么这个式子按从左向右的顺序来做关系运算

70小于等于score显然这个结果应该是零

因为70小于等于50 它为假

不成立嘛 为0

然后呢 计算0小于等于79

因为刚才左边的这个式子计算出来为0

下面计算右边的

就是0小于等于79 它的值为真

所以最后表达式的值为真 最后的结果为真

其实按照我们预先的想法

这个score的值为50

其实很显然这个50

是不在70到79这个区间的

所以很显然这个表达式

如果这样写的话这个结果很矛盾

它不能反映我们的想法

所以B等的分数段的正确的表达式

它应该书写成score大于等于70

并且score小于等于79

应该将两个关系表达式

用逻辑与运算符号连接起来

所以呢大家一定要注意

千万不能将数学里的表达式

和C语言的这个表达式混为一谈

这是这一点要注意的

那么第二点要注意的就是

逻辑的与、或运算都具有短路的特性

什么叫短路的特性呢

这个时候我们知道

与、或运算的这个结合性是

它从左向右计算的

那么这个时候如果表达式的值

有的时候它是可以

由左边的操作数单独确定下来

如果表达式由左操作数单独能够确定下来

那么它就不用再计算这个右边操作数的值了

那么这到底是个什么意思呢

下面我们来举个例子来看一下

大家可以看到这里

定义了3个变量a、b、c

a、b、c分别被赋值为1、2、3

那么下面有一个if语句

满足条件 执行相应的操作

那这个if语句里面大家可以看到这个与运算

先计算左边的式子

因为b的值是2 2和2不相等

所以很显然 这个运算表达式左边的值为零

大家还记得这个逻辑运算的这个真值表吧

我们知道 与运算只要一者为零

它结果肯定为零

所以这个时候

与运算它右边的式子就不需要再计算了

直接出结果为零

因为它左边的结果为0嘛 对吧

不管右边的式子结果是否为0 结果都为0

所以这个条件表达式执行结束了

右边这个式子里面c的值

依然是原来的这个3 没有变化

同样的 或运算的短路特性是这样的

如果或运算的左边表达式的值是1

那么或运算的右边表达式 就不用计算

直接出结果为1

因为或运算是 只要一者为真 结果为真

所以这就是与和或

它们的运算具有短路的特性

那么学习完关系运算和逻辑运算之后呢

到目前为止我们掌握的已经有很多种运算符了

比如说 算术运算、逻辑运算、关系运算等等

它们可以表示一个复杂的条件

但是我们要注意

当表示一个复合条件的时候

运算符的优先级与结合性是怎么样的

多种运算符放在一个式子里面

它的优先级由高到低排列

依次是一元运算符 其次是算术运算符

关系运算符、逻辑运算符和赋值运算符

其中一元运算符它的优先级最高

赋值运算符优先级最低

然后在这个算术运算符里面 我们都清楚

比如说先算乘、除、求余 再算加减

关系运算符呢 它的小于、小于等于

大于、大于等于它都是高于这个

等于和不等于运算的

逻辑运算就是除了非之外 与高于或

那么它的结合性也要注意

好 这就是我们学习

如何正确表示选择结构中的条件

所具备的一些知识

要学会运用不同类型的运算符

还要了解运算符的这个运算特点

还要掌握运算符的优先级与结合性

这样我们才能在选择结构中能够正确地

书写和表示这个条件

好 这一节课就到这里

谢谢大家

高级语言程序设计课程列表:

程序设计和C语言

-1.1 计算机程序和计算机语言

--计算机程序和计算机语言

--致敬先辈:伟大的C语言之父——丹尼斯·里奇 程序员

-1.2 C程序的构成

--C程序的构成

--当前主流程序设计语言各自都有什么优势?

-1.3 C语言编辑、编译、运行(VC++2010学习版)

--C语言编辑、编译、运行(VC++2010学习版)

-练习题

顺序结构程序设计

-2.1 变量的定义和使用

--变量的定义和使用

-2.2 数据类型

--数据类型简介

--整型数据

--实型数据

-2.3 格式输出和格式输入

--格式输出printf函数

--格式输入scanf函数

--单个字符的输入输出

-2.4 运算符和表达式

--运算符和表达式

-2.5 结构化程序设计入门

--结构化程序设计入门

-练习题

选择结构程序设计

-3.1 为什么要用选择结构解决问题

--为什么要用选择结构解决问题

-3.2 如何正确表示选择结构中的条件

--如何正确表示选择结构中的条件

-3.3 用if语句及if语句嵌套实现选择结构

--用if语句及if语句嵌套实现选择结构

-3.4 用switch语句实现选择结构

--用switch语句实现选择结构

-练习

循环结构程序设计

-4.1 循环的引入

-- 为什么要用循环结构解决问题

-4.1 循环的引入--作业

-4.2 用while语句实现循环

--用while语句实现循环

-4.3 用do-while语句实现循环

-- 用do-while语句实现循环

-4.4 用for语句实现循环

-- 用for语句实现循环

-4.4 用for语句实现循环--作业

-4.5 何时需要用循环的嵌套

--何时需要用循环的嵌套

-4.6 如何提前终止循环和提前结束本次循环

--如何提前终止循环和提前结束本次循环

-习题--作业

数组

-5.1 数组类型的引入

--数组类型的引入

-5.2 一维数组的定义和初始化

--一维数组的定义和初始化

-5.3 一维数组的使用

--一维数组的使用

-5.4 二维数组的定义和初始化

--二维数组的定义和初始化

-5.5 二维数组的使用

--二维数组的使用

-习题--作业

指针

-6.1 什么是指针

--什么是指针

-6.2 指针类型及相关概念

--指针类型及相关概念

-6.3 指针变量的定义、赋值与使用

--指针变量的定义、赋值与使用

-6.4 指针的运算

--指针的运算

-6.5 指针与一维数组

--指针与一维数组

-6.6 指针的指针

--指针的指针

-6.7 指针与二维数组

--指针与二维数组

-习题--作业

函数

-7.1 为什么要自定义函数

--为什么要自定义函数

-7.2 函数的定义

--函数的定义

-7.3 函数的调用

--函数的调用

-7.4 函数参数的传递

--函数参数的传递

-7.5 函数的嵌套调用和递归调用

--函数的嵌套调用和递归调用

-7.6 变量的作用域和存储类型

--变量的作用域和存储类型

-习题--作业

字符串

-8.1 字符串的存储及输入输出

--字符串的存储及输入输出

-8.2 系统字符串处理函数

--系统字符串处理函数

-8.3 自定义字符串处理函数

--自定义字符串处理函数

-习题--作业

结构体和共用体

-9.1 结构体类型的定义

--结构体类型的定义

-9.2 结构体变量及指针变量的定义及使用

--结构体类型变量和指针变量的定义和使用

-9.3 结构体变量和指针变量作函数的参数

--用结构体变量和指向结构体的指针作函数参数

-9.4 结构体数组的定义和使用

--结构体数组的定义和使用

-9.5 共用体类型和枚举类型

--共用体和枚举类型

-习题--作业

动态内存分配

-动态内存分配--习题

文件

-习题--作业

如何正确表示选择结构中的条件笔记与讨论

也许你还感兴趣的课程:

© 柠檬大学-慕课导航 课程版权归原始院校所有,
本网站仅通过互联网进行慕课课程索引,不提供在线课程学习和视频,请同学们点击报名到课程提供网站进行学习。