switch-case语句中case后的”常量表达式“的问题

jywangping 2008-04-18 05:39:27
表达式
'a'||'A'
是不是常量表达式?如果是,为什么在switch语句用
case 'a'||'A':
语句出错!
...全文
1429 11 打赏 收藏 转发到动态 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
archerK 2008-04-19
  • 打赏
  • 举报
回复
身表同意..........
johnelf 2008-04-19
  • 打赏
  • 举报
回复
up
shadow5085 2008-04-19
  • 打赏
  • 举报
回复
同意ls的ls
sxsong_04 2008-04-19
  • 打赏
  • 举报
回复
lz是不是除了case a||A 还有 case b||B 之类的有可能跟a||A值相同的
ayw215 2008-04-18
  • 打赏
  • 举报
回复
同意ls~
qq271991628 2008-04-18
  • 打赏
  • 举报
回复
我想你的意思是当你输入了A或者a的时候并没有达到你预想的结果。如果是这样的话,那是因为当你输入了A或者a的时候'a' || 'A'返回的是1,当然不等了。
你可以这样写:
char c;
c = getchar();
switch(c)
{
case 'a':
case 'A':
cout << c << endl;
break;
default:
cout << "error" << endl;
}
IT_lau 2008-04-18
  • 打赏
  • 举报
回复
d
liveforme 2008-04-18
  • 打赏
  • 举报
回复
恩,顶ls,
case 'a'||'A':
相当于case 1:
薛定谔之死猫 2008-04-18
  • 打赏
  • 举报
回复
可以这么用,但是这东西恒返回1,其它case恒返回1的就冲突了
liveforme 2008-04-18
  • 打赏
  • 举报
回复

void main(){
char c;
switch(c){
case 'a'||'A':
break;
}
system("pause");
}


能编译过阿
mLee79 2008-04-18
  • 打赏
  • 举报
回复
当然是常量表达式, C 中为 1 , Cpp 为 true ...
在 case 中完全没问题 ...
当然如果你不小心再写个 case 'b' || 'B' 显然就不行了...

64,639

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

试试用AI创作助手写篇文章吧