If 和 else 语句没有按预期的方式工作

If and else statement is not working as how its supposed to

提问人:user22792016 提问时间:10/24/2023 最后编辑:Remy Lebeauuser22792016 更新时间:10/24/2023 访问量:84

问:

作为初学者编码员,我只是在玩一些代码。我遇到了一个问题,无论我输入什么,它都会运行我的部分。发生这种情况是有原因的吗?else

我试着这样做,如果我以某种方式回应,它就会输出下一个短语。

#include <iostream>

int main() {
    std::string answer;

    std::cout << "Get up on the floor!" << std::endl;
    std::cin >> answer;
    int a = false;
    if (answer == "Dancin' all night long") {
        std::cout << "get up on the floor!" << std::endl;
    } else {
        int g = false;
        while (g == false) {
            std::cout << "Try again." << std::endl;
            std::cin >> answer;
            if (answer == "Dancin' all night long") {
                int g = true;
                std::cout << "get up on the floor!" << std::endl;
            }
        }
    }
    return 0;
}
C++ IF语句

评论

3赞 Some programmer dude 10/24/2023
流提取运算符读取以空格分隔的单词。如果要阅读整行,则需要使用 .>>std::getline
2赞 Dave S 10/24/2023
在这里,学习使用调试器或日志记录会对你有所帮助。如果你看过 answer 的值,就会很清楚为什么“==”总是失败。你的问题可能是“为什么答案只是第一个词?”但你会更近一步。
2赞 harold 10/24/2023
顺便说一句,在代码的下方不会做你看起来的意思。这是一个新变量,与循环条件中使用的变量无关。int g = true;ggwhile
1赞 heap underrun 10/24/2023
另外,为什么要将 / 分配给?C++ 具有用于此目的的类型。truefalseintbool
2赞 PaulMcKenzie 10/24/2023
@user22792016作为一个刚从 Lua 痛苦中走出来的人,我认为C++会非常相似,所以我试着把它当作 Lua 来对待。 -- 在学习或编写C++代码时,不要使用其他计算机语言作为模型。如果你继续使用另一种语言作为模型,你的程序将是 1) 错误,2) 效率低下,3) 对 C++ 程序员来说看起来很奇怪。您违反了规则 1)。在学习 C++ 时假装 Lua(或任何其他语言)不存在。

答: 暂无答案