switch (ch)
{
case '~' || 177:
tile->tileType = TILE_NONE;
return true;
case '@' || 219: //error here: '@'
tile->tileType = TILE_WALL;
return true;
}
错误如下: “案例值‘1’已被使用”
......到底是什么??
我尝试清理解决方案,重新启动,使用另一台电脑。我“已经很接近”重新安装 VS 了。知道发生了什么吗?
最佳答案
不能像 if 语句那样将多个 case 除以 ||
。你有这样的情况
'~' || 177:
这是一个计算结果为 true 的 bool 表达式,which gets evaluated to 1
因为 case 只能是整型(int
、char
和 enum
),所以必须转换为 int
.所以你说的是真的
case 1:
同样的事情发生在你的第二个 case 语句中,它被评估为第二个 case 1:
,因此出现错误
而是这样做:
case '~':
case 117:
//code
关于c - 为什么对 switch case 值进行“或”运算时会出现错误?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59432466/