案例标签不会减少为整数常量

时间:2015-12-08 02:30:04

标签: c++ char integer switch-statement constants

我不明白为什么我的switch语句不起作用。 我把它砍掉了,因为它很长,但是用户应该输入一个字符给" selection1' &安培; "选择2"然后我将它们作为参数传递给我的validSelection()函数。 validSelection函数应该测试有效条目的字符,并通过返回布尔值来拒绝所有其他条目。

bool validSelection(char selection)
{
switch (selection)
{
case "R":
case "r":
case "P":
case "p":
case "S":
case "s":
    return true;
default:
    return false;
}
}

cin >> selection1;
cin >> selection2;
if (validSelection(selection1) && validSelection(selection2))

selection1和selection2都是char数据类型。

1 个答案:

答案 0 :(得分:3)

正如@CaptainObvlious已经指出的那样,双引号""之间的任何内容都被视为字符串。但是,您可以将整数值传递给开关。同样,您必须将字符放在单引号''

您可能需要更改我们的代码,如下所示。

bool validSelection(char selection)
{
    switch (selection)
    {
        case 'R':
        case 'r':
        case 'P':
        case 'p':
        case 'S':
        case 's':
            return true;
        default:
            return false;
    }
}