for (dungeonLevel = 0; dungeonLevel < 5; dungeonLevel++)
{
if (dungeonLevel = "1")
{
cout<< "You will be fighting the warrior Apollo";
cout<< "Do you want to 1. attack 2. defend 3. dodge";
if (turn = "1")
{
yourDamage = rand() % 5 + 0; //generates a number between 1 and 5
}
这产生了一个模棱两可的错误
[错误]&{39; operator=
&#39;模糊过载(操作数类型是&#39; std::string {aka std::basic_string<char>}
&#39;和&#39; int
&#39;)
我不知道对这些错误有任何了解。我希望你们能帮助我。
谢谢
答案 0 :(得分:3)
if (dungeonLevel = "1")
这是导致错误的行。你希望它是:
if (dungeonLevel == 1)
我在这里做了两处改动:
首先,我将=
符号(称为赋值运算符)替换为==
符号,这是比较运算符。当您在运算符左侧为变量赋值时,可以使用赋值运算符(可以是固定值,如5,&#34; hello&#34;等等...)。它没有进行比较,因为你试图在你的if语句条件下进行比较。因此,您需要使用比较运算符(==
),它检查左侧的语句是否与右侧的语句相同,并传递布尔值(true或false),具体取决于结果比较,告诉编译器是否进入if语句的正文。因此,您需要在if语句条件中使用(==
)而不是(=
)。
其次,我在if语句条件中从1中删除了撇号,因为你想要一个int值,而不是字符串。当您运行循环时,您会增加一个计数器,该计数器必须是int
值。
另一件事:
for (dungeonLevel = 0; dungeonLevel < 5; dungeonLevel++)
在这一行中,您尚未声明dungeonLevel
的数据类型(也许您在for循环之外执行了此操作)。它应该声明为int
类型。
将您的for-loop标头更改为:
for (int dungeonLevel = 0; dungeonLevel < 5; dungeonLevel++) // Notice that I added the data type of dungeonlevel in its initialization statement