if statement中的平等比较

Equality comparison in if-statement

本文关键字:比较 statement if      更新时间:2023-10-16

对不起这个问题,这是我的第一个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;

if语句

中存在问题

必须这样:

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

欢迎来到C 世界!您肯定在正确的轨道上,但是有几个问题。首先,您在if语句中使用的操作员是分配运算符,因此您的语句将始终返回true。这实际上应该是比较操作员(==)。其次,我建议在此处使用if-else if语句,因为您可能不需要两次检查。以下应该足够:

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

您打算写比较操作员==

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

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

评估为true

甚至更简单:

而不是:

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

您可以写这篇

  num = num * (bp + 1)

甚至

  num *= (bp + 1)