P4 C++ 条件与分支(if)

前言

今天我们来看看条件语句,换句话说,也就是 if 语句、if else 和 else if 等等这写语句。

我知道大家基本上已经非常了解 if 语句和所有 C++ 中的分支语句,但我还是鼓励你们继续看完这一讲,这里可能包含一些新东西。我们还会深入一点看它如何在 C++ 中工作,这些对你理解程序如何运行是有一些帮助的。

01 分支语句能干什么

条件语句if 语句、 分支语句,这些都是什么意思呢?

  • 有些时候我们写程序的时候,我们需要对一个特定的条件进行评估,然后根据评估的结果,决定我们想要执行什么代码。
  • 举个例子,假设我们有一个变量 x 等于5,我们希望能够编写代码实现判断 这个变量的值是否确定等于5,这就是 条件语句 的本质,这里的条件就是 x 等于5,在此基础上我们可以进行适当的分支。
  • 这样的话,有两种情况会发生,当我们运行我们写的 if 语句时,有两个过程,首先是对实际 条件语句 的评估,然后是基于这个条语句评估后的分支语句。换句话说,如果条件为真,我们需要跳到我们源代码的某一部分,如果值为假,我们需要跳到我们源代码的另一部分。
  • 当我们开始一个应用程序时,整个应用程序及其所有模块加载到内存中。基本上所有这些指令组成了我们的程序,现在这些指令都存储在内存中,当我们有了条件语句所产生的分支,我们基本上是在告诉电脑,嘿,跳到我们的这部分内存开始吧在那里执行我们的指令。正因为如此在内存和分支之间跳跃,实际的过程会更复杂一点,这里有相当多的东西值得我们探索一下。

记住,if 语句就是在检查一个条件,如果这件事是真的,我们就去执行一组特定的代码

02 if语句例子

我们看一个例子。

P4 C++ 条件与分支(if)_第1张图片

先做一些解释。

== 操作符称为 比较运算符,它的作用是比较两边的值是否相等。有点像是一个函数,接受两个参数。它会返回一个布尔值类型的结果。

在整数或者在大多数原始的数据结构中,如果你要检查两个数,比如两个整数是否相等,比较运算符基本上是在获取他们的四个字节的内存,然后比较每个字节,这 2 个整数相等的条件是内存的每一位都必须相同

上面的程序将 x 和 5 比较的结果存储到布尔值的变量 ret中。

我们使用分支语句做点事情。

P4 C++ 条件与分支(if)_第2张图片

ret这里可以有两种写法。

// 第一种写法
if(ret)
// 第二种写法
if(ret== true)

这两种写法其实是一个意思,换句话说,在第一种写法中,如果 ret不是 true,这个 if 语句也将不会运行。

然后我们为这个 if 语句写了分支语句,换句话说,就是分支去哪里?条件成立后你想让我运行什么代码?

我们现在已经创建了一个分支,如果 ret为 true,我们打印hello world

03 if语句到底在做什么

那么 if 语句到底在做什么呢?它只是在检查这个数字是不是 0 ,如果它是 0,就不会执行 if 语句,如果它不是 0,它会跳到 if 语句内,这就是为什么这整个式子我们不需要做比较运算之类的事情,因为我们不需要检查它是否等于 1 或者是 0,我们可以直接说这个值是不是不是 0,这就是它所做的。

P4 C++ 条件与分支(if)_第3张图片

P4 C++ 条件与分支(if)_第4张图片

 对比两段代码,会发现,当ret 等于 5时,返回1,将ret = 6后,返回了0,hello world也打印了

指针变量也是如此

P4 C++ 条件与分支(if)_第5张图片

可以看到执行代码后,打印了指针为空,这是因为我们给指针变量p设置为了NULL,也就是空指针,else语句则是和if语句一起的,逻辑上就是如果****,否则***** 

04 else if

#include 
using namespace std;
int main()
{
   char *p = "hello";
   if(p == "world")
   {
      std::cout<< p<

P4 C++ 条件与分支(if)_第6张图片

else if 只会是当 if 语句失败之后才会执行。

其实没有所谓的 else if 语句,只是将两个语句放在一行而已,和我们之前将 if 语句的内容的放在 if 的同一行是一样的。else if 只是一个小聪明而已,也就是说如果上面的 if 失败了,就尝试 else if。同样只有在前面的 if 失败后,才会触发 else 语句,才会去比较 p是不是 hello。就是这样。

P4 C++ 条件与分支(if)_第7张图片

我记得当我发现的时候,这让我很吃惊,因为我真的没意识到这一点,我觉得 else if 是关键字组合,但是实际上不是,else if 不是 C++ 的关键字,是先 else,然后再 if 。

你可能感兴趣的:(C++,c++,arm开发,linux,c语言,ubuntu,qt)