【问题标题】:If Function and cinIf 函数和 cin
【发布时间】:2017-07-09 00:15:57
【问题描述】:

我对 c++ 非常陌生,正在尝试编写一个简单的游戏来学习一些基本机制,但我的代码遇到了问题,

如何定义 WantToPlay 函数,以便当玩家输入“yes”时它会回复精彩,而“no”会回复 boooo?

我当前的代码给出了 WantToPlay 必须是 bool 类型的错误,但我不确定如何使用布尔函数来纠正它?

谢谢!

using std::cout;
using std::cin;
using std::endl;
using std::string;


string leader;
string WantToPlay;

int main()
 {
    std::cout << "Dungeon Master: Welcome to my dungeon, traveller! What is         your name?" << std::endl;
cin >> leader;
cout << "Dungeon Master: Well hello, " << leader << " I have a little quest for you if you're interested?" << endl;
cout << "(Please enter ""yes"" or ""no"")" << endl;


cin >> WantToPlay;

if (WantToPlay = "yes")
    cout << "Fantastic!" << endl;
else if (WantToPlay = "no")
    cout << "boooo" << endl;




return 0;


}

【问题讨论】:

  • WantToPlay = "yes" -> WantToPlay == "yes"
  • 启用更多编译器警告。

标签: c++ if-statement boolean


【解决方案1】:

您需要使用 o̶p̶e̶r̶a̶t̶o̶r̶ c̶o̶m̶p̶a̶r̶a̶t̶o̶r̶ 等式运算符。 “==” 你所做的是分配,而不是比较。

【讨论】:

【解决方案2】:

您知道 "=" 和 "==" 之间的区别吗?检查你的 if 语句,并更正它。 提示:不能在 if 条件下使用赋值。

【讨论】:

  • 嗯,你可以在 if 条件下使用赋值,但它给出的结果与相等测试不同。
  • 恕我直言质量低下,因为它应该是答案,但却是一个问题+错误的陈述
  • 是的,但是 if 条件中的赋值不会返回 if 可以识别的任何 bool 值 :) 但在这种情况下,总的来说问题是使用“=”而不是“==”
  • 很多东西都可以转换为布尔值,否则在条件下使用= 不会是一个常见的错误。您可以在条件中使用赋值,但 99% 的情况下这不是您想要的。
【解决方案3】:

(WantToPlay = "Yes") 表示将字符串值“Yes”分配给字符串变量WantToPlay

由于您将变量的值与“是”进行比较,因此您应该使用“==”,因为(WantToPlay ==“是”)意味着字符串值“是”是相同 作为字符串变量 WantToPlay 中的值。

【讨论】:

    猜你喜欢
    • 2019-02-12
    • 2018-12-06
    • 1970-01-01
    • 1970-01-01
    • 2015-05-21
    • 2018-09-08
    • 2015-03-20
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多