switch语句的输出问题

#include <stdio.h>
#include <iostream>

using namespace std;

int main() {

int n = 'c';
cout<<n<<endl; // 99

switch(n++) { // 先取n的值,n再加1
default:cout<<"default"; break;
case 'a':cout<<"a"<<endl;
case 'b':cout<<"b"<<endl;
case 'c':cout<<"c"<<endl;
case 'd':cout<<"d"<<endl;
}
cout<<n<<endl;
return 0;
}

字符’c’的ASCII值为99,所以n为99。从’c’开始查找,输出’c’之后,由于没有break,所以继续输出’d’。

switch语句的输出问题_#include

通过百度可知

“字符对应于0~127中的一个数字,是整数的子集”

因此case中可以写成字符的形式,我们也可以这样写程序:

#include <stdio.h>
#include <iostream>

using namespace std;

int main() {

char n = 'c';
switch(n++) {
default:cout<<"default"; break;
case 99:cout<<"c"<<endl;
case 100:cout<<"d"<<endl;
}
return 0;
}

最后输出结果如下:

switch语句的输出问题_#include_02