zoukankan      html  css  js  c++  java
  • 《c++ primer》Chap5 Statements

    1. 语句(statements)

      ival+5   是一个表达式(expression),但加上一个分号以后,就是一个语句:

      ival+5; 就是一个语句。只不过这个语句得到 ival+5 的值以后,将之丢弃了。

    2. 空语句

      ; 分号前面没有内容,就是一个空语句,有时在循环中可以使用,比如

    while (cin>>s && s!=sought)
        ;  // 这个空语句使得 while 结构合法而已

    3. block

      用花括号括起来的内容叫做一个 block,它是一个作用域(scope),在其中定义的变量都是局域的。

    4. 条件语句

      if( condition1 )

        statement1

      else if( condition2)

        statement2

      else

        statement3

      如上的 if 语句,可以有任意个 else if,可以没有最终的 else,每个执行 statement 都可以是花括号括起来的一个 block。

      if 也可以嵌套使用。如果没有花括号来区分,每个 else 与最近的 if 结合。

    5. switch 语句

    switch语句可以在大量选项中做选择。 如下示例,swich 后面跟一个括号,括号中是一个表达式,case 'a' 叫做 case label,如果 ch 与 任何一个 case label 的值相同,就从那个 label 开始执行后面的所有执行语句

    which (cin>>ch){
        switch (ch) {
            case 'a' :
                ++aCnt;
            case 'e' :
                ++eCnt;
            case 'i':
                ++iCnt;
            case 'o':
                ++oCnt;
            case 'u':
                ++uCnt;
       }

    所以,如果上面的代码本意是统计各个元音出现的次数,就有错误了。需要在每行执行语句后面加上 break; 表示跳出 switch 语句,如下

    which (cin>>ch){
        switch (ch) {
            case 'a' :
                ++aCnt; break;
            case 'e' :
                ++eCnt; break;
            case 'i':
                ++iCnt; break;
            case 'o':
                ++oCnt; break;
            case 'u':
                ++uCnt; break;
      } }

    最后一个 break 不加也可以,因为后面没有内容了,跳不跳都一样。但是作为习惯还是加上,如果以后改代码追加 case label,就不会因为少一个 break; 而出错。

    另外,所有 case label 后面也可以加一个 default label,捕捉不满足所有 case label 的情况。

    which (cin>>ch){
        switch (ch) {
            case 'a' :
                ++aCnt; break;
            case 'e' :
                ++eCnt; break;
            case 'i':
                ++iCnt; break;
            case 'o':
                ++oCnt; break;
            case 'u':
                ++uCnt; break;
            default:
                ++otherCnt; break;
      }
    }

    default 后面也可以什么都不跟,即使用一个空的default。这只是一种好习惯。。。

    (未完待续)

  • 相关阅读:
    IntelliJ IDEA常用的快捷键积累总结
    Linux命令(六)之防火墙iptables的相关操作以及端口的开放
    Linux命令(五)之service服务查找、启动/停止等相关操作
    Linux命令(四)之常用文件拷贝/移动,文件解压缩,文件查找等相关的操作
    Linux命令(三)vim编辑器的常用命令
    Linux命令(一)之目录结构、Linux终端操作、关机重启等一些基本操作
    zookeeper核心知识与投票机制详解
    zuul开发实战(限流,超时解决)
    IO多路复用技术详解
    Linux五大网络IO模型图解
  • 原文地址:https://www.cnblogs.com/luyi07/p/12750201.html
Copyright © 2011-2022 走看看