zoukankan      html  css  js  c++  java
  • 【c++ primer读书笔记】【第5章】语句

    1.switch语句

    case关键字和它对应的值一起被称为case标签,case标签必须是整型常量表达式。

    int val=42;
    char ch;
    while(cin>>ch){
          switch(ch){
    	   case 3.14: //错误,case标签不是一个整数
    	   case val: //错误,case标签不是一个常量
               //...
    	}
    }
    switch的执行流程有可能跨过某些case标签。如果程序跳转到了某个特定的case,则switch结构中该case标签前的部分会被忽略。如果某处一个带有初值的变量位于作用域外,在另一处该变量位于作用域内,则从前一处跳转到后一处的行为是非法行为。
    case true:
        string file_name;  //错误:控制流绕过一个隐身初始化的变量
        int val1=0;        //错误:控制流绕过一个显式初始化的变量
        int val2;          //正确:val2没有初始化
        break;
    case false:
        val1=3;            //错误:val1的初始化操作由“case”标签跳过
        val2=9;            //正确:给val2赋值
        break;

    2. 范围for语句

    c++新标准引入,这种语句可以遍历容器或序列的所有元素

    范围for语句的语法形式是:

    for(declaration:expression)
        statement

    experssion表示一个序列(如数组、vector或string等类型的对象),declaration定义一个变量,序列中的每个元素都能转换成该变量的类型。

    #include<iostream>
    #include<vector>
    using namespace std;
    
    int main(){
    	 vector<int> vec = { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 };
    	 for (auto &v : vec)     //对于vec中的每一个元素
    		 cout << v << " ";
    	 cout << endl;
    
    	 system("pause");
    	 return 0;
    }

  • 相关阅读:
    HDU 1124 Factorial
    hdu 1690 Bus System
    hdu 1113 Word Amalgamation
    POJ 2482 Stars in Your Window
    hdu 1385 ZOJ 1456 Minimum Transport Cost(经典floyd)
    hdu 1907 John
    VMware 虚拟机 安装 UBuntu 9.10 命令模式转换成窗口模试
    #pragma CODE_SEG __NEAR_SEG NON_BANKED详解
    Ubuntu 下Hadoop 伪分布式 hadoop0.20.2.tar.gz 的安装
    文件拷贝代码以及疑问
  • 原文地址:https://www.cnblogs.com/ruan875417/p/4495577.html
Copyright © 2011-2022 走看看