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

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

目录

if语句

if语句(其一)

if语句(其二)

嵌套if语句

破!----if语句的语法

方案1

方案2

switch语句

switch的妙用

标签

break语句

default标签

if语句与switch语句的交流

未完待续


《斗破CPP》 第贰章(上) ---- 初识分支句_第1张图片

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。如果左操作数的值大于右操作数,则>运算符返回真,否则返回假。

trueflasebool型的常量值,成为布尔字面量

chap0201流程图如下:

《斗破CPP》 第贰章(上) ---- 初识分支句_第2张图片

如果输入的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》 第贰章(上) ---- 初识分支句_第3张图片

 这种形式的if语句会执行两条语句中的一个,而不会两者都执行或两者都不执行。

初学者在写if语句的时候可能会犯以下两个错误:

if a < b cout << "a小于b。";           //条件缺少括号
if (c > d) else b = 3;                 //else前缺少语句

《斗破CPP》 第贰章(上) ---- 初识分支句_第4张图片

嵌套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》 第贰章(上) ---- 初识分支句_第5张图片

破!----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》 第贰章(上) ---- 初识分支句_第6张图片

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》 第贰章(上) ---- 初识分支句_第7张图片

 像case 5:这样表示程序要跳转到的地方的标记称为标签

5和:之间可以不键入空格,但请切记,case和5之间必须要有空格。

break语句

当chap0204中的程序流遇到break语句,即

break;          //break语句:跳出switch语句

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

因此,在通过break语句跳出后,程序将执行switch语句之后的语句。

default标签

标签default:当用于程序流分支的条件的求职结果与哪一个case都不匹配时,程序流将跳转至该default标签处。我们来看看它的流程图:

《斗破CPP》 第贰章(上) ---- 初识分支句_第8张图片

可以看出,在没有break语句的地方,程序流将”滑落“至下一条语句。

如果改变switch语句内标签的出现顺序,则程序的运行结果也会改变。在使用switch语句,小伙伴们务必要考虑标签顺序哦!

《斗破CPP》 第贰章(上) ---- 初识分支句_第9张图片

 

if语句与switch语句的交流

看过上面部分的小伙伴都知道,if语句和switch语句都可以实现程序流的分支结构,两者统称为选择语句。对于使用if语句或switch语句均可实现的分支结构,使用switch语句实现更容易阅读,我们来看看下图:

《斗破CPP》 第贰章(上) ---- 初识分支句_第10张图片

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

《斗破CPP》 第贰章(上) ---- 初识分支句_第11张图片

 

未完待续

很感激阅读到这里的你,《斗破CPP》的精彩并不止于这些,学有余力的小伙伴可以看看下面这些博客,都是有着极多的技巧与干货❤

《斗破CPP》 第壹章 ---- 初窥CPP :https://blog.csdn.net/qq_64263760/article/details/124053651

C语言小游戏(一)----猜数游戏:

https://blog.csdn.net/qq_64263760/article/details/122880908
 

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

你可能感兴趣的:(易懂,笔记,新手,c++)