【C++Primer】第5章:语句

第5章 语句

5.1 简单语句

语句以分号结束

空语句:在程序的某个地方,语法上需要一条语句,但是逻辑上不需要,使用空语句。

块语句:在程序的某个地方,语法上需要一条语句,但是逻辑上需要多条语句,使用块语句(复合语句)。

空块的作用等价于空语句

5.2 语句作用域

5.3 条件语句

if,switch,

case标签必须是整型常量表达式

5.4 迭代语句

while,传统for,范围for,do…while

范围for是C++11新标准,能直接遍历到容器中元素

do…while先执行循环体,再检查条件

do
    statement
while (condition);

5.5 跳转语句

break,continue,goto,return

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

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

千万不要用goto,代码会乱七八糟


5.6 try语句块和异常处理

throw表达式

用于引发一个异常

//首先检查两条数据是否是关于同一种书籍的
if(item1.isbn() != item2.isbn()){
    throw runtime_error("Data must refer to same ISBN");
}
//如果程序执行到了这里,表明两个ISBN是相同的
cout << item1 + item2 << endl;

抛出异常将终止当前的函数,并把控制权转移给能处理该异常的代码。

try语句块

try语句块中抛出的异常由对应的catch语句处理

try{
    
}catch(错误类型1){
    
}catch(错误类型2){
    
}//...
while(cin >> item1 >> item2){
    try{
        
    }catch(runtime_error err){
        cout<< err.what()
            << "\nTry Again? Enter y or n" << endl;
        char c;
        cin >> c;
        if(!cin || c == 'n'){
            break;
        }
    }
}

每个标准库异常类都定义了名为what的成员函数,这些成员函数没有参数。说明错误的原因

如果一段程序没有try语句块且发生了异常,系统会调用terminate函数并终止当前程序的执行。

标准异常

image-20211221131156746

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

zdb呀

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值