漳州企业网站建设公司,wordpress添加友情链接页面,免费开源的建站系统,福州企业公司网站建设一个表达式末尾加上分号就变成了表达式语句。最简单的语句是空语句#xff08;一个单独的分号#xff09;#xff1a;语法上需要一条语句但是逻辑上不需要 复合语句是指用花括号括起来的#xff08;可能为空#xff09;语句和声明的序列#xff1a;用在语法上需要一条语… 一个表达式末尾加上分号就变成了表达式语句。最简单的语句是空语句一个单独的分号语法上需要一条语句但是逻辑上不需要 复合语句是指用花括号括起来的可能为空语句和声明的序列用在语法上需要一条语句但是逻辑上需要多条语句的地方 C规定在同一个语句块中else与离他最近的if匹配 case标签必须是整形常量表达式如果某个case标签匹配成功将从该标签开始往后顺序执行所有的case分支除非程序显式中断标签不应该孤零零地出现它后面必须跟一条语句或者另外一个case标签 C规定不允许跨过变量的初始化语句直接跳转到该变量作用域内的另一个位置。这就要求我们在case语句中不能对变量进行初始化操作可以进行定义定义是在编译时期发生的所以无论如何都无法跳过但是初始化是可以跳过的但是这种操作是不被允许的。 case true:string file_name; //错误控制流绕过一个隐式初始化的变量int i 0; //错误控制流绕过一个显式初始化的变量int j; //正确没有初始化break;
case false:j 1; //正确j已经定义这里是赋值break;如果我们想要在case语句中定义并初始化一个变量应该把变量定义在块内从而确保后面所有的case标签都在变量的作用域之外 case true:{string file_name; //正确隐式初始化//...}break;
case false:{//...}条件部分可以是一个表达式或者是一个带初始化的变量声明 定义在while条件部分或者while循环体内的变量每次迭代都经历从创建到销毁的过程 使用while 不确定要迭代多少次想在循环结束后访问循环控制变量 传统for (initializer; condition; expression) statement循环执行流程initializer-condition-statement-expression-condition-statement-expression... initializer中可以定义多个变量但只能有一个声明语句 范围for语句 for (declaration : expression)statementexpression必须是一个序列比如用花括号括起来的初始值列表、数组、vector或string共同特点是有可以返回迭代其的begin和end成员 不能通过范围for循环增加vector对象的元素 do statement while (condition)语句应该在括号包围起来的条件后用一个分号表示语句结束 condition使用的变量必须定义在循环体之外 goto语句的作用从goto语句无条件跳转到同一函数内的另一条语句语法形式为 goto label;label用于标识一条语句的标示符 label: statement;标签标示符独立于变量或其他标示符的名字因此标签标示符可以和程序中其他实体的标示符使用同一个名字而不会相互干扰。 同switch语句类似goto语句也不能将程序从控制权从变量的作用域之外转移到作用域之内。向后跳过一个已经执行的定义是合法的跳到变量定义之前意味着系统将销毁该变量然后重新创建。感觉比较复杂也没有关系反正不用 C异常处理机制为程序中异常检测和异常处理两部分 throw表达式表示遇到了无法处理的问题我们说throw引发了异常。例如 throw runtime_error(Data error);该异常的类型是runtime_error对象抛出异常将终止当前的函数并把控制权转移给能处理该异常的代码 类型runtime_error是标准库异常类型中的一种定义在stdexcept头文件中 try语句块的通用语法形式 try {statement
} catch (exception-delaration) {handler-statement
} ...try语句块内部声明的变量在块外无法访问特别是在catch子句内也无法访问 **如果最终还是没能找到任何匹配的catch子句程序转到名为terminate的标准库函数。**该函数的行为与系统有关一般情况下执行该函数将导致程序非正常退出。 while (cin item1 item2) {try {//} catch (runtime_error err) {cout err.what() endl;}
}编写异常安全的代码非常困难 exception头文件定义了最通用的异常类exception只报告异常的发生只能以默认初始化的方式初始化stdexcept头文件定义了几种常用的异常类详见P176表5.1必须提供string对象或者C风格字符串初始化这些类型的对象new头文件定义了bad_alloc异常类型只能以默认初始化的方式初始化type_info头文件定义了bad_cast异常类型只能以默认初始化的方式初始化异常类型的what函数返回一个C风格字符串