首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >其他声明会重演吗?

其他声明会重演吗?
EN

Stack Overflow用户
提问于 2012-05-07 06:28:22
回答 2查看 137关注 0票数 0

我正在为一个最终的项目做一次文本冒险,我有很多If语句,这些语句可以检查你是否输入了类似“看灯笼”之类的内容,然后它会显示有关它的信息,等等。

我想这样做,所以如果你输入类似于"srjfdrszdgrf“的东西,它只会告诉你”你不能这么做“。在底部有一个else语句,但是它似乎不能正常工作,而是在每个if之后重复else语句。

我做错了什么吗?

代码语言:javascript
复制
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语句不正确吗?

EN

回答 2

Stack Overflow用户

发布于 2012-05-07 06:30:42

是的,你有两个街区,第一个街区:

代码语言:javascript
复制
if (command == "look_lantern")
{
    cout << "It's an ordinary lantern.\n";
}

第二个是:

代码语言:javascript
复制
if (command == "look_door")
{
    cout << "It's a large wooden door.\n";
}
else
{
    cout << "You can't do that.\n";
}

如果只想执行一个块,那么只有当第一个块失败时,才需要使第二个块执行:

代码语言:javascript
复制
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";
}

这两种方法都会被执行,因为在第一次执行之后没有什么可以停止执行的。

票数 4
EN

Stack Overflow用户

发布于 2012-05-07 06:32:26

在这种情况下,您应该使用else if

代码语言:javascript
复制
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分支,输出如下:“您不能这样做。”

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/10477649

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档