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’。
通过百度可知
“字符对应于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;
}
最后输出结果如下: