Operatory logiczne służą do łączenia lub negowania warunków. W języku C wynik wyrażenia logicznego jest traktowany jako prawda lub fałsz: wartość 0 oznacza fałsz, a każda wartość różna od zera oznacza prawdę.
Najważniejsze operatory
&&— logiczne i (AND), oba warunki muszą być prawdziwe,||— logiczne lub (OR), wystarczy, że jeden warunek jest prawdziwy,!— logiczne nie (NOT), odwraca wartość logiczną.
Przykład użycia &&
Aby sprawdzić, czy liczba należy do przedziału, zwykle trzeba połączyć dwa warunki operatorem &&:
if (zm1 > 6 && zm1 <= 203) {
printf("Liczba jest w przedziale");
}
Warunek jest prawdziwy tylko wtedy, gdy zm1 jest większe od 6 oraz jednocześnie mniejsze lub równe 203.
Przykład użycia ||
Operator || sprawdza, czy spełniony jest przynajmniej jeden warunek:
if (zm1 < 0 || zm1 > 100) {
printf("Liczba poza zakresem");
}
Ten warunek jest prawdziwy, gdy liczba jest mniejsza od 0 albo większa od 100.
Typowy błąd egzaminacyjny
Dla przedziału nie należy używać ||, jeśli oba ograniczenia mają być spełnione jednocześnie. Wyrażenie:
zm1 > 6 || zm1 <= 203
będzie prawdziwe dla bardzo wielu wartości, także spoza oczekiwanego przedziału. Do sprawdzania przynależności do przedziału najczęściej stosuje się &&.