当前课程知识点:C/C++:从基础语法到优化策略 >  Final Exam >  Final exam >  3.5 Branching statements (if else)

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

3.5 Branching statements (if else)在线视频

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

3.5 Branching statements (if else)课程教案、知识点、字幕

我们现在来聊一下分支

什么是分支呢 我们说

一个程序要表现得智能

那主要的一个特点就是它能根据不同的情况去决策

决策一般来说 就是可以分为两部分

一个是他可以looping 就会做事情 重复不停的做 一直在工作

if statement就说他可以根据不同的情况做不同的抉择 做不同的事情

也是根据输入不同做出不同的响应

这样就看上去像很智能 我们说人工智能可能就是这个样子吧

那么我们来看一个最简单的人工智能程序

if这个程序呢 if这个程序我们来看

这边我们先定义一个ch

然后又定义了两个变量 spaces和total

然后下一个就是

用cin读一个字符从标准输入读一个字符 while如果这个字符不是点

那我就一直不停的去循环 直到是个点为止

那循环什么呢 我们来看这里面

那每个循环里面 他都看一下 如果ch等于空格 空格字符

那么spaces就加一

也就是说 从这里看 spaces 这个变量是用来统计你输入了多少个空格 这是if

total total这个地方也是++

这个并不受 if 的约束

每一次循环 每一次while循环 他都会+1 都会+1

这个就是用来描述你输入了多少个字符 输入多少字符

做完这件事 然后再读一个字符进来 再循环 循环之后判断是不是空格

然后总数+1

直到你输入一个点把它终止了 把这个循环终止了

然后我们就可以把spaces多少个空格和多少个字符全打印出来

这里面就是一个很简单的if判断

如果条件怎么样 if和后面就会跟一个条件跟一个条件

我们来看一下这个程序

if cpp 然后运行 运行的时候 我们想输点什么呢

那就hello world . 直接结束它

那这么 他就说有一个空格 11个字符 11个字符

如果我们再运行一次 hello world 回车 点

他会说有一个空格 12个字符 因为我们多出入了一个换行符 才回车

所以说这个是这个例子

从这个例子我们就可以看到 if 怎么样这个地方就执行这个

当然了 这个地方是一行代码 你可以这儿加个花括号

把一个代码块全放进来 它可以执行很长的代码 这是 if

当然 if 还有更复杂的 if 有 if 就有 else

他就分两种条件 如果满足这个条件就干什么

不满足了这个就干什么 所以这是if else

那么还有if else if else

意思就说这是如果怎么样 else if 怎么样 else怎么样

那这样话就是分三支 前面是有两个分支 这个有三个分支

甚至可以更多 我们来看这个例子 if else if这个例子来解释

我们来看这个例子里面也是跟刚才一样我们定义一个变量n 然后do

先去做一个 做的时候先读一个字符到n里面去

如果这个字符小于Fave Fave是什么

我们可以看到它是一个常量的整数27

如果他比他小 if 他就会打印 Too low -- guess again

else if 如果比他大那 Too hign -- guess again

else else的话就属于既不大又不小那就等于的情况了

那你说Fave is right

这样话就有三种情况 就是这是一个循环

循环循环的时候 每次循环进来就读一个数

然后 跟27这个常量27 比一下是大是小 还是相等 这是三种情况

因为每一个这个条件题里面只有一行代码

所以我们这没有加花括号

如果你有多行 你需要加花括号

这循环的停止条件是 n不等于 Fave 就不等于27

那么如果等于27的话 那首先打印这一条出来

然后 再去用这个条件一判断等于

等于 那就意味着这个值是false 循环结束 循环结束

这是整个程序 我们来运行一下看看

if else if

好输一个1到100的值

虽然这提示让你输的1到100但实际上你输个1000也没关系

他说 Too high 那20 这是Too low

这个值猜数嘛 我们是猜数游戏

这个值应该是在20-1000之间 那我们输个100他说太大

输个50他说太大那我们再输个 30

还是太大了 那么输25 二分法查找 太低 26或者是27就出来了

这个就是一个if else if的

这边是可以说的是

这一段你可以拷贝一下再加一个条件

你可以有多个条件多个条件

然后来判断它

这有一个小思考题 有一个小思考题

如果多个条件

那么是长什么样子的 如果我这边写成 这个样子

else if 它大于这个开始 这个是大于它加一

加一那么我的问题是 他要跟27进行对比

那么那比较的时候 如果我输一个30这个条件不满足

那他这个天是满足的 这个条件也是满足的那么

他是执行哪个呢 执行第一个 还是执行第二个 还是执行两个都执行呢

这两个都执行呢

这个作为一个思考题 大家去自己试一试这个例子

这个先不管他了

好这部分就这些内容

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.5 Branching statements (if else)笔记与讨论

也许你还感兴趣的课程:

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