2

I am making a pokemon game and this section is giving me 3 errors: "Invalid expression term ';' (CS1525)" and "; expected(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; 
    }
}

}

Maybe it is a silly problem but I don't know what it is

4

4 に答える 4

10

C# ではパーセントを指定できません。

次の行があります。

CritPerc=25%;
CritPerc=33.3%;
CritPerc = 50%;

これは無効です (パーセントは C# のモジュロ演算子を示します)。

代わりに、値を倍精度浮動小数点値として指定することをお勧めします。

CritPerc=0.25;
CritPerc=0.333;
CritPerc = 0.50;
于 2012-06-16T03:48:28.740 に答える
2

C# の %(パーセント) 演算子は、2 つのオペランドを取るモジュロ演算を意味します。しかし、あなたはそれを与えます。したがって、エラーが発生します。

それ以外の

CritPerc=25%;

書きます

CritPerc=.25;

また

CritPerc=25/100;

ダメージ==ダメージ

エラーを引き起こします。

于 2012-06-16T03:54:44.967 に答える
1

言う行:

dmg == dmg;

ああ、致命的な「=」エラー。

于 2012-06-16T03:50:25.480 に答える
1

間違った演算子である dmg ==dmg があり、 dmg が既に正しい値を持っている場合は、それを返すだけで、 dmg=dmg は言うまでもありません

于 2012-06-16T03:56:30.297 に答える