Вы должны использовать &&
над &
, поскольку &&
является логическим оператором, где &
является побитовым оператором.
Когда речь идет о тестах, необходимо помнить, какоператоры работают.
Использование логического ИЛИ (||
) означает, что если один из условий равен true , то весь оператор верен.
Использование логических AND (&&
) означает, что если все условий равны true , то весь оператор верен.
См. на этой странице для получения справки по операторам C ++.Примерно на полпути вниз находится раздел «Логические и побитовые операции».
Редактировать: Надеюсь, этот пример кода поможет устранить вашу путаницу:
int A = 0;
int B = 1;
if (A == 0 && B == 0) {
//This code will not run, as the whole statement is false
. . . .
}
if (A == 0 && B == 1) {
//This code will run, as the whole statement is true
. . . .
}
if (A == 0 || B == 0) {
//This code will run, as A = 0, so the whole statement is true
. . . .
}