案例标签不会减少到整数常量
Case Label Does Not reduce to integer constant
我不明白为什么我的 switch 语句不起作用。
我把它切碎了,因为它很长,但是用户应该输入一个字符到 "selection1' & "selection2",然后我将这些作为参数传递给我的 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数据类型。
正如@CaptainObvlious 已经指出的那样,双引号 ""
之间的任何内容都被视为字符串。但是,您需要将整数值传递给开关。同样,您必须将字符放在单引号内 ''
.
您可能需要如下更改我们的代码。
bool validSelection(char selection)
{
switch (selection)
{
case 'R':
case 'r':
case 'P':
case 'p':
case 'S':
case 's':
return true;
default:
return false;
}
}
我不明白为什么我的 switch 语句不起作用。 我把它切碎了,因为它很长,但是用户应该输入一个字符到 "selection1' & "selection2",然后我将这些作为参数传递给我的 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数据类型。
正如@CaptainObvlious 已经指出的那样,双引号 ""
之间的任何内容都被视为字符串。但是,您需要将整数值传递给开关。同样,您必须将字符放在单引号内 ''
.
您可能需要如下更改我们的代码。
bool validSelection(char selection)
{
switch (selection)
{
case 'R':
case 'r':
case 'P':
case 'p':
case 'S':
case 's':
return true;
default:
return false;
}
}