我正在尝试将其转换为switch语句
if (codeSection == 281)
cout << "bigamy";
else if (codeSection == 321 || codeSection == 322)
cout << "selling illegal lottery tickets";
else if (codeSection == 383)
cout << "selling rancid butter";
else if (codeSection == 598)
cout << "wounding a bird in a public cemetery";
else
cout << "some other crime";
// Actual switch statement
switch (codeSection)
{
case '281':
cout << "bigamy" << endl;
break;
case '321':
case '322':
cout << "selling illegal lottery tickets" << endl;
break;
case '383':
cout << "selling rancid butter" << endl;
break;
case '598':
cout << "wounding a bird in a public cemetery";
break;
default:
cout << "some other crime"<< endl;
}
编译器说switch语句多字符常量,并给我一个黄色警告,但仍然编译。我的问题是假设只是以char形式?喜欢案例'2'
答案 0 :(得分:5)
case '281':
应该是
case 281:
和其他类似,否则编译器“认为”你试图使用多字符常量,这不是你可能想要的。
case
不一定是char
。实际上,它必须是与转换和整体促销之后的条件类型相同类型的常量表达,例如,参见例如。 http://en.cppreference.com/w/cpp/language/switch