#include
int main()
{
int n='r';
switch(n++){
default:std::cout<<"error";break;
case 's':case '7':case't':std::cout<<"student";break;
case 'r':case'4':std::cout<<"teacher";
case '2':std::cout<<"all";}
}
这个程序最后运行结果为什么是teacherall
因为你case'r':后面执行的语句没有break;你可以参考下面这篇blog http://blog.csdn.net/thisispan/article/details/7450084
n++是先使用n的数值再自加,switch比较时n值为'r',因此输出teacher。由于没有break,把后面的all也输出了