C++中的switch语句的break问题
2015-08-11 20:41
501 查看
今天笔试360了,再次遇到这个简单但是又容易出错的问题。
首先看下正确的写法:
程序输出是:012
加break的意思是说,找到合适的case执行后,下面的case就不再执行,而是退出当前switch语句。
-------------------------------------------------------------------------------------------------------------------------------------------------
容易考到的点是不加break会怎样?
看下面代码。
程序输出是000122
程序输出是0012
结论:就是说找到适合的case前不执行,找到对应case后都执行,直到遇到break或者switch语句结束!
首先看下正确的写法:
int main() { int i; for(i=0;i<3;i++) { switch(i) { //switch语句一定加大括号 case 0: //注意格式 case 0: 这里不用加大括号 cout<<i; break; //每个case后要break case 2: cout<<i; break; default: cout<<i; break; } } system("pause"); return 0; }
程序输出是:012
加break的意思是说,找到合适的case执行后,下面的case就不再执行,而是退出当前switch语句。
-------------------------------------------------------------------------------------------------------------------------------------------------
容易考到的点是不加break会怎样?
看下面代码。
int main() { int i; for(i=0;i<3;i++) { switch(i) { case 0: cout<<i; case 2: cout<<i; default: cout<<i; } } system("pause"); return 0; }
程序输出是000122
int main() { int i; for(i=0;i<3;i++) { switch(i) { case 0: cout<<i; case 2: cout<<i; break; default: cout<<i; } } system("pause"); return 0; }
程序输出是0012
结论:就是说找到适合的case前不执行,找到对应case后都执行,直到遇到break或者switch语句结束!
相关文章推荐
- 关于C语言中的字符数组和字符指针
- 团体队列
- C++实现堆排序
- C++简单单例模式
- C++/STL用erase删除元素(vector,deque),(list,set,map)
- 10-2. 删除字符串中的子串(20)
- c++类实现字符串的基本函数
- extern "C" 的用法解析
- C++/STL_利用remove_if 删除vector,list,deque满足条件的元素
- C语言的static关键字
- 求逆矩阵的c++实现
- HDU栈外挂 用c++提交
- 关于C/C++ 结构体字节的算法
- Android之——JNI配置C语言打印Logcat信息
- C++ 对象的sizeof问题
- 黑马程序员———C语言———【一维数组】
- C++ 命名空间
- C++对象模型——Inline Functions(第四章)
- C++ Primer 学习笔记_32_STL实践与分析(6) --再谈string类型(下)
- C++对象模型——指向Member Function的指针 (Pointer-to-Member Functions)(第四章)