我正在为一个最终的项目做一次文本冒险,我有很多If语句,这些语句可以检查你是否输入了类似“看灯笼”之类的内容,然后它会显示有关它的信息,等等。
我想这样做,所以如果你输入类似于"srjfdrszdgrf“的东西,它只会告诉你”你不能这么做“。在底部有一个else语句,但是它似乎不能正常工作,而是在每个if之后重复else语句。
我做错了什么吗?
if (command == "look_lantern")
{
cout << "It's an ordinary lantern.\n";
}
if (command == "look_door")
{
cout << "It's a large wooden door.\n";
}
else
{
cout << "You can't do that.\n";
}所以当你输入“看灯笼”时,上面写着:
,这是一个普通的灯笼。
你不能这么做。
我在这里使用的else语句不正确吗?
发布于 2012-05-07 06:30:42
是的,你有两个街区,第一个街区:
if (command == "look_lantern")
{
cout << "It's an ordinary lantern.\n";
}第二个是:
if (command == "look_door")
{
cout << "It's a large wooden door.\n";
}
else
{
cout << "You can't do that.\n";
}如果只想执行一个块,那么只有当第一个块失败时,才需要使第二个块执行:
if (command == "look_lantern")
{
cout << "It's an ordinary lantern.\n";
} else if (command == "look_door")
{
cout << "It's a large wooden door.\n";
}
else
{
cout << "You can't do that.\n";
}这两种方法都会被执行,因为在第一次执行之后没有什么可以停止执行的。
发布于 2012-05-07 06:32:26
在这种情况下,您应该使用else if
if (command == "look_lantern")
{
cout << "It's an ordinary lantern.\n";
}
else if (command == "look_door")
{
cout << "It's a large wooden door.\n";
}
else
{
cout << "You can't do that.\n";
}如果您用旧的方式编写代码,第一个If将被执行,并输出:“这是一个普通的灯笼。”
在此之后,将执行第二个if,并且它不匹配,因此执行else分支,输出如下:“您不能这样做。”
https://stackoverflow.com/questions/10477649
复制相似问题