引言
分支结构可以详细将遇到的情况进行细分,正确处理每种状况,后续我们会经常用到这种结构。例如:我们开了一家饭店,如果顾客进来点餐,那么我们就给他出餐,否则就给他推荐我们店里的招牌。如果顾客进来说要吃老八秘制小汉堡,我们会礼貌请他圆滑的轱辘出去。
比较运算符
分支结构中的判断经常会与比较运算符进行搭配使用,所以这里把常见的比较运算符拎出来。
符号名称 | 符号 |
---|---|
大于号 | > |
大于等于号 | >= |
小于号 | < |
小于等于号 | <= |
等于号 | == |
好的,现在让我们来思考一个问题,由比较运算符连接而成的式子,其结果会是怎样的呢。例如:4 > 3,那么这个式子的结果究竟是什么呢?
不难看出,此类式子的结果仅有两种情形,要么是成立、正确的,要么就是不成立、错误的。还记得上一节内容里提到的布尔类型的变量吗,它正是专门为此种情况而设计的。true 表示正确的、真实的,false 则与之相反。所以 4 > 3 的结果就应为 true。而 true 和 false 我们也可用数字来表示,通常我们用 1 表示 true,用 0 表示 false。实际上,只要是非零数字都可以表示 true。那么,我们便可以通过代码来对此进行验证!
#include <iostream>
using namespace std;
int main () {
bool flag1 = true, flag2 = false;
bool flag3 = 4 > 3;
// flag1 是true, flag2是false,flag3是true,对应输出的是101
cout << flag1 << endl << flag2 << endl << flag3;
}
分支结构
分支结构就需要用到
if
关键字了,具体的格式见下方的伪代码:
#include <iostream>
using namespace std;
int main () {
if (运算式) {
// 条件成立执行这里的代码
} else {
// 否则执行这里的代码
}
}
接下来,我们做这样一个程序,首先让用户输入一个10以内的数字,然后对该数字进行判断,如果这个数字大于5,则将其乘以2之后输出,否则将其加上5输出。
#include <iostream>
using namespace std;
int main () {
int num;
cin >> num;
if (num > 5) {
cout << num * 2;
} else {
cout << num + 5;
}
}
通过这个例子,我们可以分析得到,if其实判断的是true和false,即true的时候执行当下的分支,false的时候执行else里的分支。这条分析的结论其实可以套用到很多地方,后面我们遇到了再详细去解析。
这么一看,好像if引导的分支语句就非常简单了。其实不然,因为if是可以嵌套的。例如下面的例子:
#include <iostream>
using namespace std;
int main () {
int num = 4;
if (num < 5) {
if (num > 3) {
cout << "yes";
}
}
}
我们发现if语句中还套着一个if语句,我们逐句分析这几行代码。首先,定义了一个变量并取名叫num,并将其初始值赋上4。接着进入if的判断,如果num中的数字小于5,在这种情况下如果num中的数字还大于3的时候,就执行输出语句。不难发现,想要输出“yes”需要既满足外层if的条件,也要满足内层if的条件。后续的学习我们会使用逻辑运算简化这种写法。
总结
比较运算的内容并不是非常难,所以也相对简短一些。在这节内容中,首先需要记住对应比较运算符的写法,其次也需要了解到if语句的格式和使用方法,最后我们需要理解if实际是判断true和false的本质,同时也得清楚,比较运算式的结果只有两种,true or false!