第五章 语句

简单语句

  • 空语句
    如果在程序的某个地方,语法上需要一条语句,但是逻辑上不需要,此时应该使用空语句。
  • 复合语句(块)
    复合语句是指用花括号括起来的语句和声明的序列,复合语句也被称作块。一个块就是一个作用域。(语法上需要一条语句,逻辑上需要多条语句)

条件语句

if语句

condition不管是表达式还是变量,其类型都必须能转换成布尔类型。

  • 悬垂else
    普遍存在于既有if语句又有if else语句中的问题。C++中规定else与离它最近的尚未匹配的if匹配,从而消除了程序的二义性。

switch语句

switch语句提供了一条便利的途径使得我们能在若干固定选项中做出选择。

 char c;
    int acnt = 0, bcnt = 0;
    while(cin >> c)    //abcab
    {
        switch(c)
        {
            case 'a':
            ++ acnt;
            break;
            case 'b':
            ++ bcnt;
            break;
        }
    }
    cout << acnt << ' ' <<  bcnt << endl; // 2 2 

如果表达式和某个case标签的值匹配成功,程序从该标签之后的第一条语句开始执行,直到到达了switch的结尾或者遇到一条break语句为止。

 char c;
    int acnt = 0, bcnt = 0;
    while(cin >> c)    //abcab
    {
        switch(c)
        {
            case 'a':
            ++ acnt;
            case 'b':
            ++ bcnt;
            break;
        }
        cout << acnt << ' ' <<  bcnt << endl; 
        // 1 1
        // 1 2
        // 1 2
        // 2 3
        // 2 4
    }

case关键字和他对应的值一起被称为case 标签。case标签必须是整型常量表达式。
case 3.14就是错误的。
任何两个case 标签的值不能相同,否则就会引发错误。另外,default也是一种特殊的标签。

  • default 标签
    如果没有任何一个标签能匹配上switch 表达式的值,程序将执行紧跟在default 标签后面的语句。即使不准备再default标签下做任何工作,定义一个default标签也是有用的,目的在于告诉读者已经考虑到了默认的情况。

for,while, do while 语句

  • 范围for语句的定义来源于与之等价的传统的for语句。
    在范围for语句中,预存了end()的值。一旦在序列中添加或者删除元素,end函数的值就可能变得无效。

  • do while先执行语句或者块,后判断条件,所以不允许在条件部分定义变量。

do 
   statement
while(condition);

try语句块和异常处理

posted @ 2023-10-06 11:07  Aaaa_aa  阅读(3)  评论(0编辑  收藏  举报