18. If 和布尔逻辑

控制语句

现在,你已经知道如何声明变量和编写函数了,你在 C++ 语言学习方面已经取得了良好进展。

到目前为止,你接触的程序相对都比较简单。你需要控制语句,才能编写更复杂的程序。像 if for 之类的控制语句是许多编程语言的基础。它们允许你确定运行代码语句的时间和频率。

在本节中,你将学习使用 C++ 的 if 语句和相关的布尔逻辑使用。

下一节将介绍 while for 循环。最后,我们会讲解** switch **语句。Python 有和 * if while * 和
for 等价的语句,但没有 switch 语句。

学习控制语句之后,你可以编写更复杂的 C++ 程序。

Python vs. C++ If

下面是一组 Python 中 if 语句与 C++ 中等价语句的示例。

你会看到逻辑结构完全相同,但语法略有不同。你可以把下面的代码看作交通灯分类程序的一部分,它会告诉车辆当前
交通信号的颜色。

C++ 中的通用 if 语句如下所示:

if (<some criteria>) {
    statement_1;
    statement_2;
   .... etc
}
else if (<some other criteria>) {
    statement_1;
    statement_2;
   .... etc
}
else (<some other criteria>) {
    statement_1;
    statement_2;
   .... etc
}

布尔逻辑

要让 if 语句生效,你需要布尔逻辑。布尔逻辑在 Python 和 C++ 中的实现方式相同;有些语法是完全相同的,有些稍有不同。

下面是一个表格,显示了两种语言的比较运算符:

运算符 Python C++
等于 == ==
不等于 != !=
大于 > >
小于 < <
大于等于 >= >=
小于等于 <= <=

是的,两种语言中的比较运算符的确完全一样!

那么,逻辑运算符 and or 以及 not 呢?

它们在两种语言中不同:

运算符 Python C++
and and &&
or or ||
not not !

C++ 中的 or 运算符由两个竖线字符表示。在英文键盘上,您可以在回车键上方找到竖线键。

小测试

运算符

QUIZ QUESTION: :

将定义与 C++ 运算符匹配

ANSWER CHOICES:



Definition

C++ 中的运算符

not

{}

<=

??

%

or

==

<

||

and

!

&&

SOLUTION:

Definition

C++ 中的运算符

<=

==

<

||

!

&&

游乐场

这里是游乐场,你可以编写自己的 if 语句。在代码注释中,你会看到几条关于代码编写的建议。solution.cpp 文件中提供了参考答案,可以和你自己的代码对比学习。

Start Quiz:

#include <iostream>

int main() {
    
    /* 
    * TODO: Use this as a playground for writing if, else if and else statements
    * To get you started here, are some ideas:
    * 
    * 1. Create an integer variable and a set of if, elseif and else statements that
    * output whether the number is positive or negative.
    * 
    * 2. Create a character variable containing 'a' for acceleration, 'b' for braking, 
    * 'p' for parked, or 'n' for neutral and outputs whether or not the vehicle is accelerating, braking, 
    * parked or in neutral.
    *
    * Practice Using Boolean Logic
    *
    * You can see an example solution in the solution.cpp file
    */
    
    return 0;
}
#include <iostream>

int main() {
    
    /* 
    * TODO: Use this as a playground for writing if, else if and else statements
    * To get you started here, are some ideas:
    * 
    * 1. Create an integer variable and a set of if, elseif and else statements that
    * output whether the number is positive or negative.
    * 
    * 2. Create a character variable containing 'a' for acceleration, 'b' for braking, 
    * 'p' for parked, or 'n' for neutral and outputs whether or not the vehicle is accelerating, braking, 
    * parked or in neutral.
    *
    * Practice Using Boolean Logic
    *
    * You can see an example solution in the solution.cpp file
    */
    
    int x = 5;
    if (x > 0) {
        std::cout << "Positive Number" << std::endl;
    }
    else if (x < 0) {
        std::cout << "Negative Number" << std::endl;
    }
    else {
        std::cout << "Zero" << std::endl;
    }
    
    
    char status = 'a';
    
    if (status == 'a') {
        std::cout << "Accelerating" << std::endl;
    }
    else if (status == 'b') {
        std::cout << "Braking" << std::endl;
    }
    else if (status == 'p') {
        std::cout << "Parking" << std::endl;
    }
    else if (status == 'n') {
        std::cout << "Neutral" << std::endl;
    }
    else {
        std::cout << "Unknown" << std::endl;
    }
    
    return 0;
}