【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;
}
posted on 2015-03-19 12:54 ruan875417 阅读(168) 评论(0) 收藏 举报
浙公网安备 33010602011771号