1. 简单语句
表达式语句
表达式加上分号就是一条语句
ival + 5; //一条没有实际作用的表达式语句cout << ival; //一条有用的表达式语句
空语句
一个分号 ; 就是空语句
; //空语句ival = v1 + v2;; //第二分号是空语句,没有影响while (iter != svec.end()) ; //分号是空语句,导致下面的语句不会出现在循环中执行++iter; //不属于循环体的一部分
空语句单独不会有什么作用,但是和其他语句组合会有不同的作用
注意:别漏写分号,也别多写分号
复合语句
复合语句也就块, 就是用一对 {} 括起来的多个语句
while (val < 10) {sum += val;++val;}
块不以分号作为结束,但是在声明定义类时
{}后要加;
2. 条件语句
2.1 if 语句
if 语句的语法形式:
if (condition)statement//if else 语句if (condition)statementelsestatement2
使用注意:
//1. 注意使用花括号if (grade < 60)lettergrade = scores[0];else //错误: 下面的语句应该全部属于else的部分,需要加花括号lettergrade = scorses[(grade - 50)/10];if(grade != 100)if(grade % 10 > 7)lettergrade += '+';else if(grade % 10 < 3)lettergrade += '-';//2.悬垂elseif (grade % 10 > = 3)if(grade % 10 > 7)lettergrade += '+';elselettergrade += '-';
- 尽量个if-else中的语句块加上花括号
{}- if-else的匹配原则是就近原则,空格和缩进在c++是不会作用的,不像某些语言(点名 python)
2.2 switch 语句
格式:
switch(lables) {case lable1:statement;break;case lable1:statement;break;...default:statement;break;}
注意:
- lable1, lable2,… 必须是常量
- 如果不是特殊的需求,每个case都需要加
break, 否则会一直执行下面的标签default标签建议写上- 在不同两个标签定义的变量,不要跨标签使用
3. 迭代语句
迭代语句就是我们所说的循环语句,常见的形式有以下几种
3.1 while语句
while (condition)statement
3.2 do-while 语句
dostatementwhile (condition);
3.3 传统的for语句
for (init-statement; condition; expression)statement
3.4 范围for语句
C++11
for (declaration : expression)statement
4. 跳转语句
4.1 break 语句
break 负责终止离它最近的 while、do while、for、或switch语句
4.2 continue 语句
结束当前迭代,并进入下次迭代
4.3 goto语句
语法形式
goto label;
goto语句很好用,但是不建议用,会导致你代码结构比较乱
5. try语句块和异常处理
5.1 throw表达式
throw用于抛出异常
if(item1.isbn() != item2.isbn())throw runtime_error("Data must refer to same ISBN");
5.2 try 语句块
语法形式
try{program-satements;} catch (exception-declaration) {handler-statements;} catch (exception-declaration) {handler-statements;}// ...
program-satements 是我们用运行的语句
catch (exception-declaration) 表示的是可能会出现的异常以及相对应的异常处理语句
5.3 标准异常
c++标准库定义了一组类,用于报告标准库函数遇到的问题,它们分别定义在4个头文件中
exception头文件定义了最通用的异常类 ,它只报告异常的发生,不提供任何额外信息stdexcept头文件定义几种常用的异常类,详细见下表new头文件定义了 bad_alloc异常类型type_info头文件定义了bad_cast异常类型

