易懂|《斗破CPP》 第贰章(上) ---- 初识分支句


给小伙伴们预告一下:《斗破CPP》第贰章与第叁章将会分成上下两部分分享给大家,(上)偏向于讲述语句,(下)偏向于讲解各式各样的运算符。


目录
if语句
if语句(其一)
if语句(其二)
嵌套if语句
破!----if语句的语法
方案1
方案2
switch语句
switch的妙用
标签
break语句
default标签
if语句与switch语句的交流
未完待续

易懂|《斗破CPP》 第贰章(上) ---- 初识分支句
文章图片


if语句 if语句(其一) 我们先来个开胃小菜引出if语句:

//chap0201#include using namespace std; int main() { int n; cout << "整数值:"; cin >> n; if (n > 0) cout << "这个值为正。\n"; }

上述代码中出现的用来判断n是否大于0的语句,是if语句。其语法如下所示:
if(条件)语句
仅当()内的条件成立、表达式为真时才执行语句。这显然有很多的局限性。
该程序的条件是n>0。如果左操作数的值大于右操作数,则>运算符返回真,否则返回假。
true和flase是bool型的常量值,成为布尔字面量。
chap0201流程图如下:
易懂|《斗破CPP》 第贰章(上) ---- 初识分支句
文章图片

如果输入的n的值小于等于0,则不执行这条语句,在画面上不显示任何内容。
if语句(其二) 我们来优化一下chap0201代码:
//chap0202#include using namespace std; int main() { int n; cout << "整数值:"; cin >> n; if (n > 0) cout << "这个值为正。\n"; else cout << "这个值为0或负。\n"; }

这次的if语句的语法如下所示:
if(条件)语句 else 语句
chap0202流程图如下:易懂|《斗破CPP》 第贰章(上) ---- 初识分支句
文章图片

这种形式的if语句会执行两条语句中的一个,而不会两者都执行或两者都不执行。
初学者在写if语句的时候可能会犯以下两个错误:
if a < b cout << "a小于b。"; //条件缺少括号 if (c > d) else b = 3; //else前缺少语句

易懂|《斗破CPP》 第贰章(上) ---- 初识分支句
文章图片

嵌套if语句 嵌套的意思是:在已有的表格、图像或图层中再加进去一个或多个表格、图像或图层。或两个物体有装配关系时,将一个物体入另一物体。
故嵌套if语句的意思是在一个if语句中嵌套另一个if语句。(不是只能嵌套一个if语句,只要条件够多,想嵌套多少个就嵌套多少个)
接下来我们再来看一个结构与上不同的嵌套if语句:
//chap0203#include using namespace std; int main() { int n; cout << "整数值:"; cin >> n; if (n > 0) if (n % 2 == 0) cout << "这个值为偶数。\n"; else cout << "这个值为奇数。\n"; else cout << "输入了非正值。\n"; }

如果读入的整数值为正,则显示它是偶数还是奇数;如果为负,则显示相应的信息。
易懂|《斗破CPP》 第贰章(上) ---- 初识分支句
文章图片



破!----if语句的语法 请小伙伴们来思考下面这段代码中的语句1和语句2:
if (x == 1) if(y == 1) 语句1; else 语句2;

遇到这样的问题我们思考过后会有两种答案:
方案1
语句1 当x为1且y也为1时
语句2 当x不为1时
显然这是大多数初学的小伙伴的答案,但现实总是残酷无情的。在这样的if语句中,else在规则上是与距离与其最近的if对应的。也就是说。上面的if语句中的else对应的暴怒是if(x == 1),而是if(y == 1)。方案一不行,那就只能寄托希望于希望二了。
方案2
语句1 当x为1且y也为1时
语句2 当x为1且y不为1时
如果我们这样去写代码,或许就不会有困扰了:
if(x == 1) if(y == 1) 语句1; else 语句2;

易懂|《斗破CPP》 第贰章(上) ---- 初识分支句
文章图片



switch语句 switch的妙用
//chap0204#include using namespace std; int main() { int n; cout << "请输入整数:"; cin >> n; switch (n) { case 0 : cout << "A"; cout << "B"; break; case 2 : cout << "C"; case 5 : cout << "D"; break; case 6 : case 7 : cout << "E"; break; default: cout << "F"; break; } cout << "\n"; }

标签
如果条件n的值为5,则程序流会直接跳转至“case 5:”处:
易懂|《斗破CPP》 第贰章(上) ---- 初识分支句
文章图片

像case 5:这样表示程序要跳转到的地方的标记称为标签。
5和:之间可以不键入空格,但请切记,case和5之间必须要有空格。

break语句
当chap0204中的程序流遇到break语句,即
break;//break语句:跳出switch语句

时,将结束switch语句的执行。break是”打破“ ”跳出“ 的意思。在执行break语句后,程序流将打破包围它的switch语句并跳出。
因此,在通过break语句跳出后,程序将执行switch语句之后的语句。

default标签
标签default:当用于程序流分支的条件的求职结果与哪一个case都不匹配时,程序流将跳转至该default标签处。我们来看看它的流程图:
易懂|《斗破CPP》 第贰章(上) ---- 初识分支句
文章图片


可以看出,在没有break语句的地方,程序流将”滑落“至下一条语句。
如果改变switch语句内标签的出现顺序,则程序的运行结果也会改变。在使用switch语句,小伙伴们务必要考虑标签顺序哦!

易懂|《斗破CPP》 第贰章(上) ---- 初识分支句
文章图片



if语句与switch语句的交流 看过上面部分的小伙伴都知道,if语句和switch语句都可以实现程序流的分支结构,两者统称为选择语句。对于使用if语句或switch语句均可实现的分支结构,使用switch语句实现更容易阅读,我们来看看下图:
易懂|《斗破CPP》 第贰章(上) ---- 初识分支句
文章图片

上面这两段代码是等价的。可在连续的if语句中,用于程序流分支的比较对象并非必须是一个表达式。对于最后的判断语句,人们可能会将其误读为if(p == 4),或者怀疑其是if(p == 4)的误写。从这一点来看,switch语句便于通览全局,也可以减少阅读者的疑惑。所以综上所述:相比使用if语句,使用switch语句来实现基于一个表达式的程序流分支会更好!

易懂|《斗破CPP》 第贰章(上) ---- 初识分支句
文章图片


【易懂|《斗破CPP》 第贰章(上) ---- 初识分支句】
未完待续 很感激阅读到这里的你,《斗破CPP》的精彩并不止于这些,学有余力的小伙伴可以看看下面这些博客,都是有着极多的技巧与干货?!
《斗破CPP》 第壹章 ---- 初窥CPP :https://blog.csdn.net/qq_64263760/article/details/124053651
C语言小游戏(一)----猜数游戏:
https://blog.csdn.net/qq_64263760/article/details/122880908

如果觉得本篇博客对正在学习编程的你有帮助的话,请给施律.多一点的支持与关注!未来的一段时间里施律.将和小伙伴们一起斗破CPP,希望下次的我能为大家奉上更好的博客内容,也希望下次的博客有你!



    推荐阅读