当前课程知识点:C/C++:从基础语法到优化策略 >  Final Exam >  Final exam >  3.6 Logical expressions

返回《C/C++:从基础语法到优化策略》慕课在线视频课程列表

3.6 Logical expressions在线视频

返回《C/C++:从基础语法到优化策略》慕课在线视频列表

3.6 Logical expressions课程教案、知识点、字幕

我们再来说一说逻辑运算

逻辑运算符有三个

第一个是or 或操作写成两个竖线

还有第二个 是and 与操作写成两个 && 符号

第三个是not是非操作 写成一个!

那我们先来说说or操作 也就是或操作

或操作这两个竖线 首先它的优先级要比关系运算要低

因为我们经常把关系运算跟逻辑算组合在一起形成一个条件

我们要记得or操作要低一些

还有就是还有一个点很容易出错的

就是也容易记得 就是在或操作的时候

他可能就是说 比如说这个例子吧

假如a等于1 b也等于1

那么我们这个表达式 if后面这个条件表达式是a || b++

那么在这个两侧他是从左往右去算

既然它是或运算a是1那么转成二进制就是True

那这个时候无论右边是True 还是False

那么 这个表达式的值已经确定了 他肯定只能True

所以呢 他不会再去进行右侧的计算

也就是b++ 这个操作不会执行 不会执行

这样呢 我们来看个例子

这个代码 我们先定义a等于1 b等于1 a和b都等于1

那么我们把ab打印出来 毫无疑问 它等于1

那么我们执行这个操作之后

a首先是True 或后面的b++就按照我们刚才的讲解 应该没有必要进行运算了

所以说 b的值 b的值应该是多少呢

在这a和b 那应该是还是1 还是1 如果b参与了运算

就是这个条件进行执行了 那么b就会变成2

所以说 我们来编译一下 看看这个程序到底是几

我们来看这个结果 我们看到ab全部是1这就说明

这个公式没有参与计算 没有参与计算

好 我们来继续

前面这个地方说

或运算的True和False一共有四种情况 哪种是True哪种是False

只要有一个是True 那全是True

只有两个是False 他才会是False

所以这个就比较简单的逻辑运算了

and的话 那么跟or是不太一样

就是只有两个两侧的两个都是True才会是True 否则全部会False

所以这个的规律跟or是类似的 它的优先级也是比关系运算要低要低

也就是说 如果你有关系运算的话 先做关系运算 然后才轮到and或者or

那么同样的就是说如果你and符号连的左侧确定是false了

那么无论右侧是什么值 那都不会影响最终结果了

那这个时候他就不会去 右侧的表达式 不会来进行计算

这样是来省时间

还有就是not not操作就是非操作

这个其实就是用的时候直接在表达式的前面

加个!就可以加个!就可以

那么他就会True变成False False变成True

当然 需要注意的是 如果表达式是True或者非零

如果是个2 3次 只要是非零 那么加上一个!做非

那他的纸就会变成了False 也就是零 也就是零

如果他的表达式是False的话

那么加上这个 那就是True

在C++里面 跟其他有些编程语言不一样

True和 1 False和0是等价的

我们再来看 那么在这个里面优先级 优先级来说

not是最高的 not是最高的

然后 and and是次之 最后是or操作 最后是or操作

所以整个这样写下来也是not最高 非操作是最高 也就是!最高

然后是关系操作 后面才是and再就是or那就是or

所以我们再来看这个例子

这个例子里面还是刚才那个代码 cout a>0 && b

我们都知道a和b都是1是吧 那么 a > 0是True

b呢 b是数 那就是False

所以这个时候这个首先是先做这个 优先级最高那他是False

然后呢 这边是True True && False

那它的结果就是什么

我们看一看 打印出来 我们刚才注释掉了 保存一下然后编译运行

我们来看

他输出结果是零 实际上不是 但是没有输出False他只是输出的零 输出零

最后再讲一讲就是提一下

我们有一个library 一个头文件 就是我们可以include cctype

这个里面是一堆跟字符相关的函数

它用来判断有很多的比如is开头的函数

来判断这个字符是什么

比如isspace就表示这是一个空格 isdigit就表示是数字

isalnum就属于数字或者字母

那这种情况他就可以进行判断

这有一系列函数 那它的返回值也是True或者False 或者0 或者1

C/C++:从基础语法到优化策略课程列表:

Week 1 Quick start

-1.1 Basic knowledges

-1.2 Setting Out to C++

-Lecture notes

-Example code

-Quiz 1

Week 2 Data types

-2.1 Compile and link

-2.2 Integers

-2.3 Floating-point numbers

-2.4 C++ Arithmetic Operators

-Lecture notes

-Example code

-Quiz 2

Week 3 Expressions and statements

-3.1 Some operators

-3.2 for loop

-3.3 Relational expressions (> < ==)

-3.4 while loop

-3.5 Branching statements (if else)

-3.6 Logical expressions

-3.7 switch statement

-3.8 break and continue statements

-3.9 File input and output

-Lecture notes

-Example code

-Quiz 3

Week 4 Array, string and structures

-4.1 Array

-4.2 Array strings

-4.3 string class strings

-4.4 Structures, Unions and Enumerations

-Lecture notes

-Example code

-Quiz 4

Week 5 Pointers and memory management

-5.1 Pointers

-5.2 Allocate memory: C style

-5.3 Allocate memory: C++ style

-5.4 Managing memory for data

-Lecture notes

-Example code

-Quiz 5

Week 6 Functions

-6.1 Function review

-6.2 Various functions

-6.3 Recursion and pointer to functions

-6.4 Reference and const

-Lecture notes

-Example code

-Quiz 6

Week 7 Functions and optimization

-7.1 Adventures in functions

-7.2 Speedup your program

-Lecture notes

-Example code

-Quiz 7

Week 8 ARM and OpenCV

-8.1 C/C++ with ARM development board

-8.2 Some tricks in OpenCV

-Lecture notes

-Example code

-Quiz 8

Week 9 Class

-9.1 Classes in C++

-9.2 Constructors and destructors

-9.3 this pointer

-Lecture notes

-Example code

-Quiz 9

Week 10 Operator overloading and type casts

-10.1 Operators in cv::Mat in OpenCV

-10.2 Operator overloading

-10.3 Friend functions

-10.4 Automatic conversions and type casts for classes

-Lecture notes

-Example code

-Quiz 10

Week 11 Dynamic memory management and classes

-11.1 Dynamic memory and classes

-11.2 New and improved String class

-11.3 Using pointers to objects

-Lecture notes

-Example code

-Quiz 11

Week 12 Class inheritance and memory management

-12.1 Class inheritance

-12.2 Static and dynamic binding

-12.3 Access control: protected

-12.4 Inheritance and dynamic memory allocation

-Lecture notes

-Example code

-Quiz 12

Week 13 Constructor, assignment and class templates

-13.1 Constructor and assignment

-13.2 Classes with object members

-13.3 Private inheritance

-13.4 Class templates

-Lecture notes

-Example code

-Quiz 13

Week 14 CNN, exceptions in C++

-14.1 CNN for image classification

-14.2 Exceptions

-Lecture notes

-Example code

-Quiz 14

Week 15 Friends, nested classes, RTTI and type cast

-15.1 Friends

-15.2 Nested classes

-15.3 RTTI and type cast operators

-Lecture notes

-Example code

-Quiz 15

Final Exam

-Final exam

3.6 Logical expressions笔记与讨论

也许你还感兴趣的课程:

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