c++中的常见语句(for, while, try..catch等)

    C++中有几种常见的语句类型,如switch语句,while语句,do while语句,break语句,continue语句,try...catch语句等。使用这些语句时有各自的注意事项。

switch语句

    switch语句计算一个整型表达式的值,然后根据这个值从几条执行路径中选择一条。如果需要为某一case分支定义并初始化一个变量,则应该变量定义在块内,从而确保后面的所有case标签都在变量的作用域外。

while循环

     while条件部分或者while循环体内的变量,每次迭代都经历从创建到销毁的过程。

范围for语句

     范围for语句,遍历容器或其他序列的所有元素。

for (declaration : expression);               
     statement

    expression是一个序列,如:初始值列表、数组、vector或string对象。

    declaration定义一个变量,序列中的每一个元素都能转换成该变量的类型。每次迭代将其初始化成序列中的下一个值,然后执行statement。

   不能在范围for语句中增加vector对象中的元素,因为在范围for语句预存了end()一旦序列中添加(删除元素,end函数的值就可能变得无效了。

do while语句

    在括号包围起来条件后面,用一个分号表示语句结束。

break语句

    负责终止离它最近的迭代语句或switch语句并从之后的语句开始继续执行。

continue语句

    终止最近的循环中的当前迭代并立即开始下一次迭代。

    对于while或者do while语句来说,继续判断条件的值

    对于for循环来说,继续执行for语句头中的expression;

    对于范围for语句来说,则是用序列中的下一个元素初始化循环控制变量

goto语句

    作用是goto语句无条件的跳转到同一函数内的另一条语句。

goto label;               //label是标识一条语句的标识符
label: return ;          //带标签语句,可以作为goto的目标

    带标签语句是一种特殊的语句,有一个标识符和一个冒号。标签标识符独立于变量或其他标识符的名字,因此可以和程序中其他实体使用同一名字而不相互干扰。

throw语句

    当程序某部分检到它无法处理的问题时,需要异常处理此时检测出问题的部分应该发出某种信号表明程序遇到了故障,无法继续下去了,信号的发出方无须知道故障将在何处得到解决。一旦发出信号,检测出问题的部分也就完成了任务。

     throw表达式引发一个异常,其中表达式的类型就是抛出的异常类型。

if (item1.ID != item1.ID);             //首先检查两条数据是否是同一类型
     throw  runtime_error(“Data must refer to same ID”);
cout << item1 + item2 << endl ;         //如果程序执行到这里,表示两个ID是相同的

     上面代码中,如果ID不同就抛出一个异常,该异常的类型时runtime_error的对象。抛出异常将终止当前的函数,并把控制权转移给能处理该异常的代码。

try...catch语句

    异常处理,关键字try开始,并以一个或多个catch子句结束。try语句块中代码抛出的异常通常会被某个catch子句处理。

try
{  
      program-statements
}
catch(exception-declaration)
{
      handler-statements
}
 catch(exception-declaration)
{
      handler-statements
}

    程序本来要执行的任务出现在try语句块中,这段代码可能会抛出异常一个catch语句负责处理一种类型的异常。如果程序最终没能找到任何匹配的catch子句,就会转到terminate标准库函数该函数行为与系统有关,一般情况下,执行该函数将导致程序的非正常退出。

    异常检测及处理的语句总结如下:

语句作用
throw 语句

异常检测,表示遇到了无法处理的问题。

try语句块

异常处理,try语句块中代码抛出的异常通常会被某个catch子句处理。

异常类

在throw表达式和相关的catch子句之间传递异常的具体信息。

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值