我似乎没有找到代码的问题,它说它不能将“ bool”转换为“ int”,但是已经是“ int”了?
public void fUpgrades( int n, double v, double c)
{
switch (n)
{
case (n < 25): v = v * 1.05; c = c * 1.25; break;
case ((n >= 25) || (n < 50)): v = v * 1.1; c = c * 1.5; break;
case ((n >= 50) || (n < 75)): v = v * 1.15; c = c * 1.75; break;
case (n >= 75): v = v * 1.3; c = c * 1.2; break;
}
}
答案 0 :(得分:1)
您正在打开n
,该开关试图将每个case语句((n < 25)
等...)与n
进行比较。 (n < 25)
是布尔值(如果小于25,则为True,否则为false)。您不能将布尔值与整数进行比较(这就是为什么会出现此错误的原因)。您需要将语法转换为if / else语句(并且您的范围逻辑有些混乱):
if (n < 25) { v = v * 1.05; c = c * 1.25; }
else if (n < 50) { v = v * 1.1; c = c * 1.5; }
else if (n < 75) { v = v * 1.15; c = c * 1.75; }
else { v = v * 1.3; c = c * 1.2; }