Почему не работает условие с or?

Почему не работает условие с or?

При делении выводится результат умножения, а не деления.

Вот код:

#include <iostream>
#include <string>
using namespace std;
 
int main()
{
    cout << "Калькулятор" << endl;
    cout << "Введите первое число: ";
    int first;
    cin >> first;
    cout << "Введите второе число: ";
    int second;
    cin >> second;
    cout << "Введите действие: ";
    string dosomething;
    cin >> dosomething;
    if (dosomething == "+")
        cout << first + second << endl;
    else if (dosomething == "-")
        cout << first - second << endl;
    else if (dosomething == "*" or "x")
        cout << first * second << endl;
    else if (dosomething == "/" or "÷" or ":")
        cout << first / second << endl;
    else 
        cout << "ошибка" << endl;
    return 0;
}

Ответы (1 шт):

Автор решения: Harry

Не задавайте вопросы картинками!!

И еще — если вы считаете, что if (a == b or c) сравнивает a с b и c, то вы таки неправы. Это выражение читается как "если a равно b или c не равно нулю". Естественно, что 'x' никак не равно нулю, так что отрабатывает умножение.

То, что вы хотите, надо проверять как

if (a == b || a == c)

А вот если бы вы дали свой пример текстом, я бы скопипастил и исправил именно вашу строку :)

→ Ссылка