【发布时间】:2012-06-16 12:10:12
【问题描述】:
我正在制作一个口袋妖怪游戏,这部分给了我 3 个错误: “无效的表达式术语';' (CS1525)”和“;预期(CS1002)”
public class HeldItem
{
public static int CritCalc(bool item,bool skill, bool UsedItem,int dmg)
{
Random rand=new Random();
Action jump=new Action();
int i = rand()%100;
double CritPerc = 6.25;
if(item==true)
CritPerc=12.5;
else if(skill==true)
CritPerc=12.5;
else if(UsedItem==true)
CritPerc=12.5;
else if((item==true & skill== true) || (item==true & UsedItem == true) || (skill==true & UsedItem==true))
CritPerc=25%;
else if(item==true & skill == true & UsedItem==true)
CritPerc=33.3%;
if(Action) //jump
CritPerc = 50%;
if(i<CritPerc)
dmg=2*dmg;
else if(i>CritPerc)
dmg==dmg;
return dmg;
}
}
}
也许这是一个愚蠢的问题,但我不知道它是什么
【问题讨论】:
-
您可能打算使用
&&(逻辑)而不是&(按位)。 -
看一眼,CritPerc = 25% 是没有意义的。它应该是 0.25 或“25%”。代码中的另外两个地方也是如此。编辑:由于 CritPerc 是双倍的,根据您的约定,它应该是 25.0。
-
@Pubby - & 运算符对整数操作数执行按位逻辑与运算,对布尔操作数执行逻辑与运算。 - msdn.microsoft.com/en-us/library/e669ax02
-
这没有任何作用:
else if(i>CritPerc) dmg==dmg; -
@AVD 我知道,但很多人会认为
&&更清晰。无论如何,他也可以删除== true。
标签: c#