if语句中的平等比较

时间:2014-03-11 06:00:06

标签: c++ c equality-operator

对这个问题感到抱歉,这是我的第一个C ++项目,我有点困惑。我要求用户输入3个单独的东西。例如,我从数字80开始。我问用户3个问题。 1)你喜欢蓝色还是黄色?输入1表示蓝色,2表示黄色。如果用户输入1表示蓝色,则将数字80乘以2.如果输入2表示黄色,则将80乘以3.

如果这看起来像是在正确的轨道上,有人可以告诉我吗?再次感谢和抱歉初学者问题。

cout << "Please enter a color blue or yellow. Type 1 for Blue, 2 for Yellow";
cin >> bp1;
// Multiply by 2 if Blue is chosen, 3 if Yellow is chosen.
if (bp1 = 1)
num = num*2;
if (bp1 = 2)
num = num*3;

4 个答案:

答案 0 :(得分:2)

您打算编写比较运算符==

if (bp1 == 1)
if (bp1 == 2)
//      ^^

if (bp1=1)将始终从operator=

评估为true

答案 1 :(得分:2)

您的if语句中存在问题

必须是这样的:

if (bp1 == 1)
num = num*2;
if (bp1 == 2)
num = num*3;

答案 2 :(得分:2)

欢迎来到C ++世界!你肯定是在正确的轨道上,但有一些问题。首先,您在if语句中使用的运算符是赋值运算符,因此您的语句将始终返回true。这应该是比较运算符(==)。其次,我建议在这里使用if-else if语句,因为您可能不需要同时检查两次。以下就足够了:

if(bp1 == 1)
{
    num = num * 2;
}
else if(bp1 == 2)
{
    num = num * 3;
}

答案 3 :(得分:0)

更简单:

而不是:

if(bp1 == 1)
  num = num * 2;
else if (bp1 == 2)
  num = num * 3;

你可以写这个

  num = num * (bp + 1)

甚至

  num *= (bp + 1)