Сравнение равенства в выражении if

0

Извините за этот вопрос, это мой первый проект 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;
  • 0
    Пожалуйста, сделайте отступ в своем коде. Вы сделаете себе одолжение.
  • 0
    PS Вы хотите, if...else if лестница, как люди упоминали.
Теги:
equality-operator

4 ответа

2

вы хотели написать оператор сравнения ==

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

if (bp1=1) всегда будет оцениваться как true из operator=

2

Добро пожаловать в мир C++! Вы определенно на правильном пути, но есть пара проблем. Во-первых, оператор, который вы используете в своих операторах if, является оператором присваивания, поэтому ваши утверждения всегда будут возвращать true. Фактически это должен быть оператор сравнения (==). Во-вторых, я рекомендую использовать инструкцию if-else if, так как вам может и не нужно проверять оба раза. Должно быть достаточно:

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

В вашем операторе if есть проблема

это должно быть так:

if (bp1 == 1)
num = num*2;
if (bp1 == 2)
num = num*3;
  • 0
    Спасибо, не могу поверить, что я забыл что-то простое, лол
0

Еще проще:

Вместо:

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

вы можете написать это

  num = num * (bp + 1)

или даже

  num *= (bp + 1)

Ещё вопросы

Сообщество Overcoder
Наверх
Меню