zoukankan      html  css  js  c++  java
  • 语句

    空语句

    空语句中只含有一个单独的分号:

    ;
    

    如果程序的某个地方,语法上需要一条语句但是逻辑上不需要,此时应该使用空语句。

    空块,所谓空块就是一堆好括号内没有任何语句。

    范围for语句

    C++ 11引入的范围 for 语句的语法形式为:

    for (declaration : expression)
    	statement
    
    • expression 必须是一个序列,比如用花括号括起来的初始值列表、数组、vectorstring 等类型,这些类型的共同点是拥有返回迭代器的 beginend 成员。

    • declaration 定义一个变量,序列中的每个元素都得能转换成该变量的类型,确保类型相容最简单的方法是使用 auto

    • 如果要对序列中的元素执行写操作,循环变量必须声明成引用类型。

    • 每次迭代都会重新定义循环变量,并将其初始化为序列中的下一个值。

    do while 语句

    do while 语句至少执行一次循环。

    do
    	statement
    while(condition);
    

    跳转语句

    break语句

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

    break 语句的作用范围 仅限于最近的循环或者 switch

    continue 语句

    continue 语句终止最近的循环当中的当前迭代并立即开始下一次迭代。continue 只能出现在 for、while、do while 循环内部。

    goto 语句

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

    goto label;
    

    label 是用用于一条语句的标识符,带标签的语句是一种特殊的语句,在他之前有一个标识符以及一个冒号:

    end:
    	return;
    

    标签提示符独立于变量或其他提示符的名字,因此,标签提示符可以和程序中其他实体的标识符使用同一个名字而不会相互干扰。

    goto 语句和控制转向的那条带标签的语句必须位于同一个函数体之内。

    try 语句块和异常处理

    异常是指存在于运行时的反常行为,这些行为超出了函数正常功能的范围。典型的异常包含失去数据库连接以及遇到意外的输入等。

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

    C++ 中异常处理包含:

    • throw 表达式,异常检测部分使用 throw 表达式来表示它遇到了无法处理的问题。称为 throw 引发了异常。
    • try 语句块,异常处理部分使用 try 语句块处理异常。try 语句块以关键字 try 开始,并以一个或多个catch 子句结束。try 语句块中代码抛出的异常通常会被某个 catch 子句处理。因为 catch 子句处理异常,所以它们也被称为异常处理代码。

    throw 表达式

    程序的异常检测部分使用 throw 表达式引发一个异常。throw 表达式包含关键字,throw 和紧随其后的一个表达式,其中表达式的类型就是抛出的异常类型。

    if(item1.isbn() != item2.isbn())
    	throw runtime_error("Data must refer to same ISBN");
    

    try 语句块

    try语句块的通用语法形式为:

    try{
    	program-statements
    }
    catch(exception-declaration)
    {
    	handler-statements
    }
    catch(exception-declaration)
    {
    	handler-statements
    }
    
    • catch 子句包含三个部分:关键字 catch;括号内一个(可能未命名的)对象的声明,称为异常声明;语句块。
    • try 语句块内声明的变量在块外部无法访问,特别是在 catch 子句内无法访问。

    函数在寻找处理代码的过程中退出

    在复杂系统中,程序在遇到抛出异常的代码前,其执行路径可能已经经过了多个 try 语句块。

    寻找处理代码的过程与函数调用链刚好相反。当异常被抛出时,首先搜索抛出该异常的函数,如果没有找到匹配的catch 子句,终止该函数,并在调用该函数的函数中继续寻找,如果还没有找到匹配的 catch 子句,这个新的函数也被终止,继续在调用它的函数中搜索,以此类推,沿着程序的执行路径逐层回退,直到找到适当类型的catch 子句为止。如果最终没有找到匹配的 catch 子句,程序转到名为 terminate 的标准库函数,该函数的行为与系统有关,一般情况下,执行该函数将导致程序正常退出。

    标准异常

    C++ 标准库定义了一组类,用于报告标准库函数遇到的问题,它们分别定义在4个头文件中:

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

    • stdexcept 头文件定义了几种常用的异常类:

    • new 头文件定义了 bad_alloc 异常类型。

    • type_info 头文件定义了 bad_cast异常类型。

  • 相关阅读:
    简明Python3教程 12.问题解决
    简明Python3教程 11.数据结构
    【SPOJ 694】Distinct Substrings
    【codeforces Manthan, Codefest 17 C】Helga Hufflepuff's Cup
    【CF Manthan, Codefest 17 B】Marvolo Gaunt's Ring
    【CF Manthan, Codefest 17 A】Tom Riddle's Diary
    【SPOJ 220】 PHRASES
    【POJ 3261】Milk Patterns
    【POJ 3294】Life Forms
    【POJ 1226】Substrings
  • 原文地址:https://www.cnblogs.com/xiaojianliu/p/12498197.html
Copyright © 2011-2022 走看看