Ответ 1
if((A == 'X' || A == 'O') && A == B && B == C)
{
// Do whatever
}
Как сравнить несколько элементов? Например, я хочу проверить, равны ли все переменные A, B и C char 'X', или все три равны 'O'. (Если 2 из них X, а один - O, он должен возвращать false.)
Я пробовал:
if (A, B, C == 'X' || A, B, C == 'O')
{
//Do whatever
}
но это не сработало. Каков наилучший способ сделать это?
if((A == 'X' || A == 'O') && A == B && B == C)
{
// Do whatever
}
Просто для разнообразия:
template <typename T, typename U>
bool allequal(const T &t, const U &u) {
return t == u;
}
template <typename T, typename U, typename... Others>
bool allequal(const T &t, const U &u, Others const &... args) {
return (t == u) && allequal(u, args...);
}
if (allequal(a,b,c,'X') || allequal(a,b,c,'O')) { ... }
Просто отделите их и проверьте их один за другим:
if (A == 'O' && B == 'O' && C == 'O' || A == 'X' && B == 'X' && C == 'X')
// etc