Я написал кусок кода, который не похоже на работу в соответствии с требованиями:Я правильно сравниваю значения enum с оператором или оператором C++?
typedef enum{none=0,apple,grape,orange} FRUIT;
FRUIT first = rand()%4;
FRUIT second = rand()%4;
FRUIT third = rand()%4;
Так что в моем состоянии, если, я могу иметь
if (first == (none | apple | grape | orange) &&
second == apple &&
third == (none | apple | grape | orange)
{
cout<<"Here"<<<endl;
}
Переменные first
и third
может иметь любой от яблоко, виноград, нет или оранжевый значения. Правильно ли условие if? Я не получаю желаемый результат, так как он вообще не входит в условие if.
'а == (б | в)' не то же самое, как '(A == B) || (a == c) ', что вы, вероятно, хотели. На это, вероятно, есть несколько сотен вопросов;). – us2012
[Не используйте 'rand'. Это отстой.] (Http://channel9.msdn.com/Events/GoingNative/2013/rand-Considered-Harmful) И особенно не используйте модуль. – chris
@chris Конечно, это хорошая идея, чтобы узнать о хороших случайных числах раньше, но на самом деле, для сбора фруктов это не имеет значения ... – us2012