再读C++ Primer——语句

文章目录

  • 5.1 简单语句
  • 5.2 语句作用域
  • 5.3 条件语句
    • 5.3.1 if语句
    • 5.3.2 switch语句
  • 5.4 迭代语句
    • 5.4.1 while语句
    • 5.4.2 传统的for语句
    • 5.4.3 范围for语句
    • 5.4.4 do while语句
  • 5.5 跳转语句
    • 5.5.1 break语句
    • 5.5.2 continue语句
    • 5.5.2 goto语句
    • 5.5.2 return 语句
  • 5.6 try语句块和异常处理
    • 5.6.1 throw表达式
    • 5.6.1 try语句块
    • 5.6.3 标准异常

5.1 简单语句

C++语言中的大多数语句都以分号结束
一个表达式加分号就变为表达式语句

空语句

;//空语句

复合语句
复合语句:指用花括号括起来的语句和声明的序列,复合语句也被称为

5.2 语句作用域

定义在控制结构中的变量只在相应语句的内部可见。

5.3 条件语句

5.3.1 if语句

5.3.2 switch语句

switch(ch){
     
    case 'a':
        ++aCnt;
        break;
    case 'b':
        ++bCnt++;
        break;
        ...
    default:
        ++vCnt;
        break;
}

漏写break容易引发缺陷

被忽略的代码含有变量的定义怎么办?

再读C++ Primer——语句_第1张图片

5.4 迭代语句

5.4.1 while语句

5.4.2 传统的for语句

5.4.3 范围for语句

C++11引入一种更简单的for语句,可以遍历容器或其他序列的所有元素

语法形式:

for(declaration: expression)
    statement
vector<int>v={
     0,1,2,3,4,5,6,7,8,9};
for(auto &r:v)
    r*=2;

5.4.4 do while语句

do 
    statement
while(condition);//分号表示语句结束

先执行一次statement,condition不能为空。如果condition为假,循环终止,condition使用的变量定义在循环体之外

5.5 跳转语句

4中跳转语句

  • break
  • continue
  • goto
  • return

5.5.1 break语句

break与极具负责终止离他最近的while、do while、for、switch语句

5.5.2 continue语句

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

continue语句只能出现在for、while、do while

5.5.2 goto语句

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

goto语句的语法形式:

goto label;

label是用于标识一条语句的标识符。
带标签语句时一种特殊的语句,它之前有一个标示符以及一个冒号

end:return;

和switch语句类似,goto语句也不能将程序的控制权从变量的作用域之外转移到作用域之内

    //...
    goto end;
    int ix=10;
end:
    //错误,goto语句绕过了声明
    ix=42;

5.5.2 return 语句

5.6 try语句块和异常处理

异常处理机制为程序中异常检测和异常处理这两部分的协作提供支持
C++异常处理包括:

  • throw表达式
  • try语句块
  • 一套异常类

5.6.1 throw表达式

throw表达式:引发一个异常,throw表达式包括关键字throw和其后一个表达式,其表达式的类型就是抛出的异常类型

Sales_item item1,item2;
cin>>item1>>item2;
if(item1.isbn()!=item2.isbn())
    throw runtime_error("Data must refer to same ISBN");
cout<<item1+item2<<endl;

runtime_error是标准数据库的一种,定义在stdexcept头文件中

5.6.1 try语句块

语法形式:

再读C++ Primer——语句_第2张图片

catch子句包括三部分:

  • 关键字catch
  • 括号内一个对象的声明(称为异常声明)
  • 一个块

5.6.3 标准异常

C++标准库定义了一组类,用于报告标准库函数遇到的问题。这些异常类也可以在用户编写的程序中使用,它们分别定义在4个头文件中:

  • exception 头文件定义了最通用的异常类exception。 它只报告异常的发生,不提供任何额外信息。

  • sstdexcept头文件定义了几种常用的异常类,详细信息在表5.1中列出。

  • new头文件定义了bad_ alloc异常类型

  • type_ info头文件定义了bad_ cast异常类型

再读C++ Primer——语句_第3张图片

你可能感兴趣的:(再读Primer,C++)