c++ - Else 语句重复自身?

标签 c++ if-statement adventure

我正在为一个期末项目进行文字冒险,我有很多 If 语句来检查你是否输入了类似“look lantern” 的内容,然后它会显示相关信息等

我想做到这一点,如果您输入类似“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";
}

所以当你输入“look lantern”时,它会说:

It's an ordinary lantern.
You can't do that.

我在这里使用的 else 语句不正确吗?

最佳答案

是的,你有两个 block ,第一个:

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";
}

如果您只想执行一个 block ,则需要让第二个 block 仅在第一个 block 失败时执行:

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";
}

这两个都被执行了,因为在第一个之后没有什么可以停止执行。

关于c++ - Else 语句重复自身?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10477649/

相关文章:

c++ - 如何知道析构函数中的堆栈损坏来自何处?

c++ - 如何检查一个值是否包含在 vector 中? C++

java - 在java中用if语句调用不同的类?

c++ - 为什么反向这个功能不起作用

c++ - 如何全局化我正在使用的文件

java - 错误否则没有

带有 if 语句的 Python oneliner

java - 3 个连续字符,中间有字母

c++ - 为什么代码不断跳转到 return main();?

java - 将分配给一个对象的一个​​变量更改为另一个对象?