If statement 无效令牌';(';在if之后的类、结构或接口成员声明中)

If statement 无效令牌';(';在if之后的类、结构或接口成员声明中),if-statement,token,If Statement,Token,我不知道为什么在我添加了最后一个if语句后,我出现了这个错误。 我的代码运行得很好,但是在我添加了if之后,我遇到了这个错误。如果您能帮我解决这个问题,我将不胜感激 string answer = Console.ReadLine(); if (answer == "cold" || answer == "a cold") { Console.WriteLine("Well done you may pass"); Console.WriteLine("Doors are now

我不知道为什么在我添加了最后一个
if
语句后,我出现了这个错误。 我的代码运行得很好,但是在我添加了
if
之后,我遇到了这个错误。如果您能帮我解决这个问题,我将不胜感激

string answer = Console.ReadLine();
if (answer == "cold" || answer == "a cold")
{
    Console.WriteLine("Well done you may pass");
    Console.WriteLine("Doors are now Open");
    Console.ReadLine();
}



else if (selection == "W" ||selection == "w" && answer != "cold" || answer != "a cold") 
{
    characterHealth = characterHealth - 20;
    Console.WriteLine("Wrong Answer Try Again");
    Console.WriteLine("Your health level is: {0}", characterHealth);
    Console.ReadLine();
}
else if (selection == "S" || selection == "s" && answer != "cold" || answer != "a cold")
{
    characterHealth = characterHealth - 10;
    Console.WriteLine("Wrong Answer Try Again");
    Console.WriteLine("Your health level is: {0}", characterHealth);
    Console.ReadLine();
}

}
int dragonHealth = 150;
int strike = randomNumbers.Next(1, 30);
int strike1 = randomNumbers.Next(1, 50);
Console.Writeline("As you move on you are encountering a small dragon");
while (dragonHealth >= 0 && characterHealth >= 0)
{
    dragonHealth = dragonHealth - strike1;
    characterHealth = characterHealth - strike; 
    Console.WriteLine("You strike the dragon,  its health is: {0}", dragonHealth);
    Console.WriteLine("The dragon counters,  your health is: {0}", characterHealth);

    if ( characterHealth >= 0 && dragonHealth <= 0)
    {
        Console.WriteLine("Congratulations you have killed the dragon");
        Console.WriteLine("You found the tresure, Story ends here");
        Console.ReadLine();
    }
    if ( characterHealth <= 0 && dragonHealth >=0)
    {
        Console.WriteLine("You died Game over");
        return;
    }
    if ( characterHealth <= 0 && dragonHealth <=0)
    {
        Console.WriteLine("You both died at the same time bad luck");
        return;
    }
    Console.ReadLine();
string answer=Console.ReadLine();
如果(回答==“感冒”|回答==“感冒”)
{
Console.WriteLine(“干得好,你可以通过”);
控制台。WriteLine(“门现在打开”);
Console.ReadLine();
}
else if(selection==“W”| selection==“W”&answer!=“cold”| answer!=“a cold”)
{
characterHealth=characterHealth-20;
Console.WriteLine(“回答错误,再试一次”);
WriteLine(“您的运行状况级别为:{0}”,characterHealth);
Console.ReadLine();
}
else if(selection==“S”| selection==“S”&answer!=“cold”| answer!=“a cold”)
{
characterHealth=characterHealth-10;
Console.WriteLine(“回答错误,再试一次”);
WriteLine(“您的运行状况级别为:{0}”,characterHealth);
Console.ReadLine();
}
}
健康指数=150;
int strike=随机数。下一个(1,30);
int-strike1=随机数。下一步(1,50);
Writeline(“当你继续前进时,你遇到了一条小龙”);
而(dragonHealth>=0&&characterHealth>=0)
{
龙健康=龙健康-删除1;
characterHealth=characterHealth-罢工;
WriteLine(“你攻击了龙,它的生命值是:{0}”,龙的生命值);
WriteLine(“龙计数器,您的健康状况为:{0}”,characterHealth);

如果(characterHealth>=0&&dragonHealth您的代码只是部分代码,因此我不能100%确定,但我相信错误是由不匹配或放错大括号引起的
{}
。当您不缩进代码时,实际上是在问这种错误。请正确格式化代码并仔细检查大括号

我觉得特别的地方:

 else if (selection == "S" || selection == "s" && answer != "cold" || answer != "a cold")
        {
        characterHealth = characterHealth - 10;
        Console.WriteLine("Wrong Answer Try Again");
        Console.WriteLine("Your health level is: {0}", characterHealth);
        Console.ReadLine();
        }

 } //what does this brace close?
...
while (dragonHealth >= 0 && characterHealth >= 0)
    { //where is this brace closed?

作为与您实际问题无关的旁注,学习一些面向对象编程或至少是使用方法将有助于您轻松制作更大的文本冒险游戏!

Ugh,请格式化您的代码。大多数编辑器甚至可以自动为您执行此操作。在
int dragonHealth=150;