深入浅出的C++Primer教程(第五章)语句

写在前面

没想到这么快就到了第五章

5.1 简单语句

C++语言中的大多数语句都以分号结束,一个表达式,比如iva1+5,末尾加上分号就变成了表达式语句(expression statement)。表达式语句的作用是执行表达式并丢弃掉求值结果。

复合语句(compound statement)是指用花括号括起来的(可能为空的)语句和声明的序列,复合语句也被称作块(block)。一个块就是一个作用域,在块中引入的名字只能在块内部以及嵌套在块中的子块里访问。通常,名字在有限的区域内可见,该区域从名字定义处开始,到名字所在的(最内层)块的结尾为止。

5.2 语句作用域

可以在if、switch、while和for语句的控制结构内定义变量。定义在控制结构当中的变量只在相应语句的内部可见,一旦语句结束,变量也就超出其作用范围了

5.3 条件语句

5.3.1 if语句

这个很简单,记住,if语句可以单独存在,也可以搭配else存在,也可以在if或者else中嵌套。给个例子

if(条件1{
	if(在条件1的前提下判断条件2{
		执行分枝1;
	}
	else
	{
		执行分枝2;
	}
}
else if(条件3{
	执行分枝3;
}
else
{
	执行分枝4;
}
悬垂else

那如果,if数量比else多呢?在C++中,它规定else与离它最近的尚未匹配的if匹配,从而消除了程序的二义性。
在这里插入图片描述
像是代码中,else本意应该是和第一个if配对,但是实际运行却发现,else是和第二个if配对的,可以使用花括号控制执行路径。

5.3.2 switch 语句

这个我之前讲过,不过可以在讲一次
首先结构是

switch(key)
{
	case key1:
		执行语句;
		break;
	case key2:
		执行语句;
		break.
		.
		.
		.
	default:
		执行语句;
		break;
}

这是我之前说的,每个语句后要加一个break,但是!有一种情况除外,比如我们需要计算所有元音字母出现次数

switch(key)
{
	case a:
	case e:
	case i:
	case o;
	case u;
		执行语句;
		break.
		.
		.
		.
	default:
		执行语句;
		break;
}

就可以这么写

5.4 迭代语句

5.4.1 while 语句

这个说过了,给个伪代码吧

while(条件)
{
	执行循环;
}

是和不知道有多少数量的情况

5.4.2 传统的for语句

这个太简单了,给个伪代码吧

for(语句头,可以定义多个变量;结束条件;变化)
{
	循环语句;
}

5.4.3 范围for

这个也很简单,给个伪代码吧

for(变量:序列)
{
	循环语句;
}

5.4.4 dowhile语句

这个也简单

do
{
	循环语句;
}
while(条件);

5. 5 跳转语句

这个也简单

5.5.1 break语句

break语句(break statement)负责终止离它最近的while、dowhile、for或switch语句,并从这些语句之后的第一条语句开始继续执行。

5.5.2continue语句

中止最近一条语句的执行并马上开始下一次循环。

5.5.3 goto语句

在这里插入图片描述

5.6 try 语句块和异常处理

5.6.1 throw表达式

程序的异常检测部分使用throw表达式引发一个异常。作用是抛出异常将终止当前的函数,并把控制权转移给能处理该异常的代码。

if(条件)
{
	throw 执行操作;
}

5.6.2 try语句块

try语句块的一开始是关键字try,随后紧跟着一个块,这个块就像大多数时候那样是花括号括起来的语句序列。
跟在 try 块之后的是一个或多个 catch 子句。catch 子句包括三部分:关键字、catch、括号内一个(可能未命名的)对象的声明(称作异常声明,exception declaration)以及一个块。当选中了某个 catch 子句处理异常之后,执行与之对应的块。catch 一旦完成,程序跳转到try语句块最后一个 catch 子句之后的那条语句继续执行。

try
{
	可能出问题的代码;
}
catch(异常1)
{
	执行操作;
}
catch(异常2)
{
	执行操作;
}

5. 6.3 标准异常

见表
在这里插入图片描述

  • 22
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值